2

这是 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))

这可能真的是微不足道的问题,但是如果我的应用程序的结构是这样的,我应该如何调用'with app.app_context()'?

4

1 回答 1

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
于 2015-02-05T00:47:28.190 回答