跨多个模块使用 Flask-pymongo
Posted
技术标签:
【中文标题】跨多个模块使用 Flask-pymongo【英文标题】:Using Flask-pymongo across multiple modules 【发布时间】:2015-04-01 16:11:54 【问题描述】:我在理解如何合并 Flask-Pymongo 时遇到了一些麻烦。我的应用程序是从我的rrapp.py
启动的,在这个文件里面,我有
rrapp.py
#
# Imports up here
#
app = Flask(__name__)
mongo = PyMongo(app)
# Code down here
现在,要使用它,我只需执行mongo.db.users.find()
。这很好用。
现在,假设我有另一个名为 userservice.py
的文件,我从 rrapp.py
中的一个端点调用方法。如果我无权访问app
对象,如何将PyMongo(app)
合并到我的userservice.py
文件中?还是我在这里遗漏了一些明显的东西?
【问题讨论】:
我在config
文件夹中有一个 config.py
和一个 def connect() 函数。我只关注from config import config
并做config.connect()
。然后我可以设置db = config.connect()
并转到results = db.doc.find()
。
【参考方案1】:
您应该首先定义 mongo oustside create_app 以从其他文件中访问它。
然后使用如下所示的 init_app:
从烧瓶导入烧瓶,current_app
from flask_pymongo import PyMongo
mongo = PyMongo()
def create_app(config_name):
app = Flask(__name__, instance_relative_config=False)
app.config.from_object(app_config[config_name])
# INIT EXTENSIONS ----------------------
mongo.init_app(app)
return app
然后在任何文件中,您都可以从上述文件中导入 mongo。例如:
from ../factory import mongo
【讨论】:
以上是关于跨多个模块使用 Flask-pymongo的主要内容,如果未能解决你的问题,请参考以下文章