在多个模块中使用Flask-pymongo

时间:2015-02-02 16:39:28

标签: python flask pymongo

我在理解如何加入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内的某个端点调用方法。如果我无权访问PyMongo(app)对象,如何将userservice.py合并到app文件中?或者我错过了一些明显的东西?

1 个答案:

答案 0 :(得分: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