我试图在HTML文件中使用Python dict。字典通过Flask中的render_template
函数传递给HTML模板。
这是dict的格式:
dict1[counter] = {
'title': l.getTitle(),
'url': l.getLink(),
'img': l.getImg()
}
然后在HTML模板中,我想在其中迭代这个dict:
{% for l in result.iteritems() %}
<div class="link">
<a href="{{ l.url }}"> {{l.title}}</a>
<img src="{{ l.img }}" width="100" height="100">
</div>
{% endfor %}
我不知道是什么问题,因为烧瓶里没有错误的日志。
问题是您在
iteritems()
上迭代,这是(键,值)对的迭代器。这意味着l
变量是元组,而不是字典。实际上,您需要遍历itervalues()
。更新模板代码如下:我相信这会让你有你想要的行为。
注意,这将以随机顺序返回值(因为遍历字典是随机的)。如果要按键排序,可以按如下方式修改模板:
在这里,我们遍历排序的键,获取相关的值,然后将其放入模板中。
您还可以将
sort
过滤器换成另一个应用您选择的顺序的过滤器。下面是一个演示新模板的最小示例:
这是它返回的HTML:
相关问题 更多 >
编程相关推荐