【问题标题】:Jinja2 - Render list items in groups of xJinja2 - 以 x 组呈现列表项
【发布时间】:2017-03-16 22:59:58
【问题描述】:

我希望在 jinja2 模板的表格中输出项目列表。

当前代码:

<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    
...

我希望输出分布在三列中,即。在表格中从左到右循环,然后在 3 个项目后开始新行。

【问题讨论】:

    标签: python html flask jinja2


    【解决方案1】:

    您可以使用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 %}
    

    【讨论】:

    • 感谢您的回答,但此 jsut 输出一行:item item item ... item
    【解决方案2】:

    您可以使用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']
    

    【讨论】:

      猜你喜欢
      • 2018-03-02
      • 2013-05-14
      • 2020-06-14
      • 2020-12-11
      • 2016-03-22
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多