Jinja 2从列表中选择项目[n]

时间:2015-07-31 09:27:01

标签: python jinja2

我有一个清单

list_data = [("q", "w", "e", "r"), ("a", "s", "d", "f")]
在Python中你可以做到:

for item in list_data:
    print item[0]

它会打印q和a

我的代码应如下所示:

{% for item in data_list %}
<div class="row no-gutter">
<div class="col-25">{{ item[0] }}</div>
<div class="col-25">{{ item[3] }}</div>
<div class="col-25">{{ item[2] }}</div>
<div class="col-25">{{ item[1] }}</div>
</div>
{% endfor %}

但我不知道如何实际获得项目[0]

1 个答案:

答案 0 :(得分:2)

确保代码正确传递list_data:Python代码和模板代码中使用的名称不同:list_datadata_list

>>> import jinja2
>>> t = jinja2.Template('''
... {% for item in data_list %}
... <div class="row no-gutter">
... <div class="col-25">{{ item[0] }}</div>
... <div class="col-25">{{ item[3] }}</div>
... <div class="col-25">{{ item[2] }}</div>
... <div class="col-25">{{ item[1] }}</div>
... </div>
... {% endfor %}''')
>>> list_data = [("q", "w", "e", "r"), ("a", "s", "d", "f")]
>>> print(t.render({'data_list': list_data}))  # <---


<div class="row no-gutter">
<div class="col-25">q</div>
<div class="col-25">r</div>
<div class="col-25">e</div>
<div class="col-25">w</div>
</div>

<div class="row no-gutter">
<div class="col-25">a</div>
<div class="col-25">f</div>
<div class="col-25">d</div>
<div class="col-25">s</div>
</div>