使用app factory和flask脚本导入Flask应用程序

时间:2015-02-04 23:41:23

标签: flask flask-script

这是Flask应用程序上下文

app = Flask(__name__)

with app.app_context():
    # insert code here

应用环境的大多数使用案例都涉及到应用程序'在相同的脚本上初始化或从基础导入应用程序。

我的应用程序结构如下:

# application/__init__.py
def create_app(config):
    app = Flask(__name__)
    return app

# manage.py
from application import create_app
from flask_script import Manager

manager = Manager(create_app)
manager.add_command("debug", Server(host='0.0.0.0', port=7777))

这可能是一个非常微不足道的问题,但我应该如何使用app.app_context()'来调用它。如果我的应用程序结构如下?

1 个答案:

答案 0 :(得分:2)

Flask-Script调用测试上下文中的所有内容,因此您可以使用current_app和其他习语:

  

Manager在Flask测试上下文中运行命令。这意味着您可以在适当的位置访问请求本地代理,例如current_app,可以由扩展使用。

http://flask-script.readthedocs.org/en/latest/#accessing-local-proxies

因此,您不需要将app.app_context()与Manager脚本一起使用。如果您尝试做其他事情,那么您必须先创建应用:

from application import create_app

app = create_app()

with app.app_context():
    # stuff here