如何在Jinja2中使用简单的for循环构建HTML表?

前端之家收集整理的这篇文章主要介绍了如何在Jinja2中使用简单的for循环构建HTML表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚学习Jinja2。我之前从未做过任何模板,因此我发现文档现在非常混乱。

如何使用简单的FOR循环构建HTML表?我的模板看起来像这样:

{% for item in items %}
<TR>
   <TD class="c1"><IMG src="favicon.ico"></TD>
   <TD class="c2">{{date}}</TD>
   <TD class="c3">{{id}}</TD>
   <TD class="c4"><SPAN>{{position}}</SPAN></TD>
   <TD class="c5"><SPAN>{{status}}</SPAN></TD>
</TR>
{% endfor %}

我的python代码如下所示:

import jinja2
loader = jinja2.FileSystemLoader('./index.html')
env = jinja2.Environment(loader=loader)
template = env.get_template('')
print template.render(date='2012-02-8',id='123',position='here',status='Waiting')

我似乎无法生成任何表格。我也不知道这是否是填充具有多个字段的表的最佳方法

解决方法

只需将项目传递给template.render作为关键字参数 – 它应该是一个列表(实际上是任何可迭代的)。如果您需要子项,请使用类或字典。在最简单的情况下,您可以使用字典:
items = []
for i in range(1,11):
    i = str(i)

    # dict == {}
    # you just don't have to quote the keys
    an_item = dict(date="2012-02-" + i,id=i,position="here",status="waiting")
    items.append(an_item)

# ... your code here ...

template.render(items=items)

然后你的Jinja代码会略有变化:

<table>
{% for item in items %}
<TR>
   <TD class="c1"><IMG src="favicon.ico"></TD>
   <TD class="c2">{{item.date}}</TD>
   <TD class="c3">{{item.id}}</TD>
   <TD class="c4"><SPAN>{{item.position}}</SPAN></TD>
   <TD class="c5"><SPAN>{{item.status}}</SPAN></TD>
</TR>
{% endfor %}
</table>

猜你在找的HTML相关文章