Jinja2(Flask)模板引擎中的参数化可重用块

10
在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实现这个功能?

2个回答

14

您可以使用宏。

{% 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>

更多文档在这里


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接