我刚刚学习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 %}
Run Code Online (Sandbox Code Playgroud)
我的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')
Run Code Online (Sandbox Code Playgroud)
我似乎无法生成任何表格.我也不知道这是否是填充具有多个字段的表的最佳方法.
Sea*_*ira 66
只需传递items给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)
Run Code Online (Sandbox Code Playgroud)
然后你的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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59826 次 |
| 最近记录: |