Jinja2默认页面标题

blu*_*ank 3 python templates jinja2 flask

我正在尝试为Flask应用程序中的所有页面设置默认页面标题.

我想将其插入默认布局模板.我的设置中有一个站点名称.

<title>{{title}}</title}}
Run Code Online (Sandbox Code Playgroud)

问题是,我似乎无法将设置中的站点名称导入布局模板.

<title>{{settings.SETTING}}</title}}
Run Code Online (Sandbox Code Playgroud)

和类似的变化不起作用.

是否有捷径可寻; 我不想让我的控制器中的每个动作都设置标题,逻辑方式是从我的设置到模板.我现在没有看到任何方式,任何输入赞赏.

编辑:

我不想写一个扩展,我看到我的应用程序的另一部分是使用扩展来将变量拉入模板,但是写一个完整的扩展程序有点超出了我当时的投资时间.

编辑:

def page_title(title):
    return settings.SITE_NAME

app.jinja_env.filters['page_title'] = page_title
Run Code Online (Sandbox Code Playgroud)

在模板中:

{{ title | page_title}} 
Run Code Online (Sandbox Code Playgroud)

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

Thi*_*ter 5

使用块:

<title>{% block title %}{{ settings.SETTING }}{% endblock %}</title>
Run Code Online (Sandbox Code Playgroud)

然后,如果要更改标题,则可以在继承自基本模板的模板中覆盖该块.

{% block title %}your custom title{% endblock %} 
Run Code Online (Sandbox Code Playgroud)