Jinja2默认页面标题

时间:2012-09-09 13:08:11

标签: python templates flask jinja2

我正在尝试为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}} 

这是关闭的东西,我想用默认值设置标题或覆盖,这是第一步有效

1 个答案:

答案 0 :(得分:5)

使用块:

<title>{% block title %}{{ settings.SETTING }}{% endblock %}</title>

如果您想更改标题,则可以在继承自基本模板的模板中覆盖该块。

{% block title %}your custom title{% endblock %}