在创建应用上下文之前,访问使用应用工厂创建的Flask应用的配置

时间:2018-08-30 00:17:46

标签: python flask

我正在使用应用程序工厂创建我的Flask应用程序对象。但是,我需要访问注册蓝图之前已加载的模块中的Flask应用程序配置。

我尝试使用from flask import current_app,但提示它是only available in the request context。确实,当我尝试运行我的应用程序时,我仍然遇到运行时错误,这是有道理的,因为该应用程序上下文仍然不可用。

app / __ init__.py
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

那么,在应用程序上下文可用之前,使此模块了解配置字典的最佳方法是什么?

0 个答案:

没有答案