我正在使用应用程序工厂创建我的Flask应用程序对象。但是,我需要访问注册蓝图之前已加载的模块中的Flask应用程序配置。
我尝试使用from flask import current_app
,但提示它是only available in the request context。确实,当我尝试运行我的应用程序时,我仍然遇到运行时错误,这是有道理的,因为该应用程序上下文仍然不可用。
from flask import Flask
def create_app(config):
my_app = Flask(__name__)
my_app.config.from_object(config)
from app.bp import bp
my_app.register_blueprint(bp, url_prefix='/bp1')
return app
app / blueprint / __ init__.py
from flask import blueprint
bp = blueprint('bp1', __name__)
from app.bp.bp_utils import do_something_with_config_var # <-- module where i need config access
@bp.route('/index')
def index():
val = do_something_with_config_var()
return val
app / blueprint / bp_utils.py
from flask import current_app
def do_something_with_config_var():
config_var = current_app.config['KEY'] # <---- fails here with RuntimeError: Working outside of application context.
return config_var
那么,在应用程序上下文可用之前,使此模块了解配置字典的最佳方法是什么?