Flask模板中的全局变量

Em *_* Ae 6 python jinja2 flask

可能不是准确的标题,因为我是flask / python的新手。我正在开发一种内部工具,供不同团队使用。每队有不同阶段的部署,如alphabeta|testprod和他们也有多个地区如NAEUAP等...

现在,当我使用时,redirect_template我正在发送stageregion作为变量,然后在模板中使用它们。但是,为每一件事做redirect_template都是很麻烦的。有什么更好的办法吗?

Won*_*Kim 14

我假设您的Flask对象的名称是app(即app = Flask(__name__))。

app初始化之后,立即放置以下代码。

@app.context_processor
def inject_stage_and_region():
    return dict(stage="alpha", region="NA")
Run Code Online (Sandbox Code Playgroud)

在您的神社模板,"alpha""NA"可以通过被引用{{ stage }}{{ region }}

Flask文档:http//flask.pocoo.org/docs/0.12/templating/#context-processors

为了将新变量自动注入模板的上下文中,Flask中存在上下文处理器。上下文处理器在呈现模板之前运行,并且能够将新值注入到模板上下文中。上下文处理器是一个返回字典的函数。然后将该字典的键和值与模板上下文合并,用于应用程序中的所有模板