在Web应用程序的开发过程中,我使用工厂模式和瓶型扩展如flask-admin。我想在应用程序尚未创建时在flask-admin中加载一些配置。所以我使用current_app.config["SOME_CONFIG"]
来获取配置值。但我得到了Working outside of application context.
异常。代码如下:在烧瓶中使用工厂模式时如何在烧瓶扩展中使用配置?
# __init__.py
from flask import Flask
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config_name)
app.config.from_pyfile("config.py")
from admin import admin
admin.init_app(app)
return app
# admin/__init__.py
from flask import current_app
from flask_admin import Admin
admin = Admin(name=current_app.config["ADMIN_NAME"], template="bootstrap2")
这里不需要在每一个粘贴的行之间留出一个空格。你也有太多的4缩进的代码。哦...实际上,你也缩进了你可能想要的标题 –
为什么管理员名称是配置的一部分?这似乎并不是它打算如何工作。 – davidism
@davidism除了flask-admin之外,我还想根据配置在使用flask-security时定义模型的字段。例如,如果SECURITY_TRACKABLE为True,我将定义login_count,last_login_ip,last_login_at ... – stamaimer