如何在Jinja2中使用简单的for循环构建HTML表?
发布时间:2020-12-14 21:26:15 所属栏目:资源 来源:网络整理
导读:我刚刚学习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
我刚刚学习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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |