在Flask模板中使用字典而不将其传递给render_template

时间:2016-10-25 22:04:53

标签: python flask

所以通常当我渲染一个模板(render_template())时,我必须以这种方式分配调用中的变量。但我担心的是,我希望尽可能让我的网站变得动态(随时更改网站名称)。所以在一个单独的文件中,我有这个。

conf = {
    'name':         'My Project',
    'version':      '1.0',
}

现在我没有在每次调用render_template时手动分配它,有没有办法全局分配它,所以在我的模板中我可以做到

{{ conf.name }}

我试过寻找答案,但我找不到我需要的答案。非常感激! :)

1 个答案:

答案 0 :(得分:0)

您可以使用Context Processors来实现这一目标。

在您的情况下,以下情况应该有效:

conf = {
    'name': 'My Project',
    'version': '1.0'
}

@app.context_processor
def inject_conf_in_all_templates():
    return dict(conf=conf)

现在,您可以在模板中访问conf个属性:

{{ conf.name }}
{{ conf.version}}