2013-02-27 43 views
6

在Jinja2的模板引擎(使用瓶),我要實現這樣的事情:用的Jinja2(瓶)的模板引擎參數可重複使用的塊

{% 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做到這一點?

回答

11

您可以使用宏。

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

+0

謝謝你。保存了一天。 – 2013-02-27 16:43:39