使用应用程序工厂和Flask脚本时导入Flask应用程序

使用应用程序工厂和Flask脚本时导入Flask应用程序,flask,flask-script,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 a

这是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脚本调用测试上下文中的所有内容,因此您可以使用当前的应用程序和其他习惯用法:

管理器在烧瓶测试上下文中运行该命令。这意味着您可以在适当的情况下访问请求本地代理,例如当前的_应用,扩展可能会使用这些代理

因此,您不需要将app.app_context()与管理器脚本一起使用。如果您尝试执行其他操作,则必须首先创建应用程序:

from application import create_app

app = create_app()

with app.app_context():
    # stuff here