2016-10-25 34 views
0

所以通常当我渲染一个模板(render_template())时,我必须以这种方式分配调用中的变量。但我担心的是,我想让我的网站尽可能动态(随时更改网站名称)。所以在一个单独的文件中,我有这个。在Flask模板中使用字典而不将它传递给render_template

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

现在没有手动分配它每次我打电话render_template,有没有给它分配的方式在全球范围所以在我的模板我可以做

{{ conf.name }} 

我试图寻找答案,但我没有找到我需要的东西。非常感激! :)

+0

'{%包括 “header.html中” %}'或' {%extends“base.html”%}' – furas

回答

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}} 
+0

哦,哇,非常感谢! – TheWorstOne

相关问题