Jinja2 - 以 x 为一组呈现列表项
Jinja2 - Render list items in groups of x
我希望在 jinja2 模板的 table 中输出项目列表。
当前代码:
<table style="width:100%">
{% for i in sales %}
<tr>
<td>{{i}}</td>
</tr>
{% endfor %}
</table>
这导致:
item
item
item
item
...
预期输出:
item item item
item item item
item item item
item item item
...
我希望输出分布在三列中,即。在 table 中从左到右循环,然后在 3 项之后开始新的一行。
您可以使用 divisibleby
测试。
{% for i in sales %}
{% if loop.index0 is divisibleby(3) %}
<tr>
{% endif %}
<td>{{i}}</td>
{% if loop.index is divisibleby(3) %}
</tr>
{% endif %}
{% endfor %}
您可以使用batch
>>> import jinja2
>>> t = jinja2.Template("{% for i in items|batch(3) %}{{i}}{% endfor %}")
>>> items = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> print t.render(items=items)
>>> ['1', '2', '3']['4', '5', '6']['7', '8', '9']
我希望在 jinja2 模板的 table 中输出项目列表。
当前代码:
<table style="width:100%">
{% for i in sales %}
<tr>
<td>{{i}}</td>
</tr>
{% endfor %}
</table>
这导致:
item
item
item
item
...
预期输出:
item item item
item item item
item item item
item item item
...
我希望输出分布在三列中,即。在 table 中从左到右循环,然后在 3 项之后开始新的一行。
您可以使用 divisibleby
测试。
{% for i in sales %}
{% if loop.index0 is divisibleby(3) %}
<tr>
{% endif %}
<td>{{i}}</td>
{% if loop.index is divisibleby(3) %}
</tr>
{% endif %}
{% endfor %}
您可以使用batch
>>> import jinja2
>>> t = jinja2.Template("{% for i in items|batch(3) %}{{i}}{% endfor %}")
>>> items = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> print t.render(items=items)
>>> ['1', '2', '3']['4', '5', '6']['7', '8', '9']