在Jinja2模板引擎(使用Flask)中,我想实现类似的东西:
{% reusable_block avatar(user) %}
<img src='{{ user.avatar }}' title='{{ user.name }}'/>
{% reusable_block %}
然后在各个地方:
{% for u in users %}
{% call avatar(u) %}
{% endfor %}
但是我在Jinja文档中找不到这样的功能(我为这个问题编写了reusable_blocks
)。我需要的是基本上可以带参数的可重用块。任何想法都知道如何用Jinja2做到这一点?
答案 0 :(得分:12)
您可以使用宏。
{% macro input(name, value='', type='text', size=20) -%}
<input type="{{ type }}" name="{{ name }}" value="{{value|e }}" size="{{ size }}">
{%- endmacro %}
<p>{{ input('username') }}</p>
<p>{{ input('password', type='password') }}</p>
更多文档here。
答案 1 :(得分:2)
我认为你正在寻找macros