Flask模板中的全局变量

时间:2017-04-11 02:45:26

标签: python flask jinja2

可能不是准确的标题,因为我是flask / python的新手。我正在研究一个将由不同团队使用的内部工具。每个团队都有不同的部署阶段,例如alphabeta|testprod,他们也有多个区域,例如NAEU,{{1等等......

现在我正在使用AP我发送redirect_templatestage作为变量,然后在模板中使用。但是,为每个region做一些事情都很麻烦。有没有更好的方法呢?

1 个答案:

答案 0 :(得分:6)

我认为您的Flask对象名称为app(即app = Flask(__name__))。

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

@app.context_processor
def inject_stage_and_region():
    return dict(stage="alpha", region="NA")

在您的Jinja模板中,"alpha""NA"可以引用{{ stage }}{{ region }}

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

  

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