【问题标题】:Importing Flask app when using app factory and flask script使用应用工厂和 Flask 脚本时导入 Flask 应用
【发布时间】:2015-02-04 23:41:22
【问题描述】:

这是 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()”?

【问题讨论】:

    标签: flask flask-script


    【解决方案1】:

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

    管理器在 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
    

    【讨论】:

      猜你喜欢
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      相关资源
      最近更新 更多