我正在学习烧瓶和蟒蛇,并且无法围绕典型烧瓶应用程序需要构建的方式。
我需要从内部蓝图访问应用配置。像这样的东西
#blueprint.py
from flask import Blueprint
sample_blueprint = Blueprint("sample", __name__)
# defining a route for this blueprint
@sample_blueprint.route("/")
def index():
# !this is the problematic line
# need to access some config from the app
x = app.config["SOMETHING"]
# how to access app inside blueprint?
如果在蓝图中导入app是解决方案,这不会导致循环导入吗?即在应用程序中导入蓝图,在蓝图中导入应用程序?
答案 0 :(得分:3)
来自appcontext的文档:
应用程序上下文支持 current_app 上下文本地
应用于您的示例:
document.getElementById('go').onclick = function () {
var limit = document.getElementById('limit').value;
var total = 0;
for (i = 0; i <= limit; i ++) {
total = total + i;
};
document.getElementById('total').value = total;
};
这里有一个小gist的参考,如评论中所述。
答案 1 :(得分:0)
在您的应用中-注册蓝图时-您需要手动推送上下文。
请参考下面的代码片段,并注意对init_db函数的调用是如何与应用程序上下文一起包装的-with可确保在完成任务后销毁该上下文。
def create_app():
app = Flask(__name__)
with app.app_context():
init_db()
return app