我正在尝试为Flask应用程序中的所有页面设置默认页面标题。
我想将其插入默认布局模板中。我的设置中有一个站点名称。
<title>{{title}}</title}}
问题是,我似乎无法将网站名称从设置导入布局模板。
<title>{{settings.SETTING}}</title}}
并且类似的变化不起作用。
有没有简单的方法可以做到这一点;我不想让我的控制器中的每个动作都设置标题,逻辑方式是从我的设置到模板。我现在没有看到任何方式,任何投入都赞赏。
编辑:
我不想写扩展程序,我看到我的应用程序的另一部分正在使用扩展程序将变量拉入模板,但编写整个扩展程序有点超出了我当时的投资时间。
编辑:
def page_title(title):
return settings.SITE_NAME
app.jinja_env.filters['page_title'] = page_title
模板中的:
{{ title | page_title}}
这是关闭的东西,我想用默认值设置标题或覆盖,这是第一步有效
答案 0 :(得分:5)
使用块:
<title>{% block title %}{{ settings.SETTING }}{% endblock %}</title>
如果您想更改标题,则可以在继承自基本模板的模板中覆盖该块。
{% block title %}your custom title{% endblock %}