我的建议是切换到 Jinja2。标签基本include
相同,但您也有macro
标签,它为您提供了一个可调用块,可以轻松地与变量一起重用。
包含标签的一些变化:
{% include "sidebar.html" ignore missing %}
{% include "sidebar.html" ignore missing with context %}
{% include "sidebar.html" ignore missing without context %}
{% include ['page_detailed.html', 'page.html'] %}
{% include ['special_sidebar.html', 'sidebar.html'] ignore missing %}
使用宏,您可以执行以下操作:
{% macro input(name, value='', type='text') -%}
<input type="{{ type }}" value="{{ value|e }}" name="{{ name }}">
{%- endmacro %}
可以这样调用:
{% import 'forms.html' as forms %}
<dl>
<dt>Username</dt>
<dd>{{ forms.input('username') }}</dd>
<dt>Password</dt>
<dd>{{ forms.input('password', type='password') }}</dd>
</dl>
假设带有宏的文件是forms.html
. 您也可以将宏放在同一个文件中,这样您就不必导入了。