我正在构建一个Flask应用程序我有一组5个动态数据点传递给我的模板。这些数据点以列表list = [1 , 2 , 3 , 4 , 5]
传递。
我知道数据总是以相同的顺序出现。 1
属于Heading 1
,2
,属于Heading 2
等。
如何将此数据与正确的标题匹配?我最初的想法是遍历列表
{% for item in list %}
Heading 1: {{ item }}
{% endfor %}
显然,这不会在标题上不起作用,所以它们都会以Heading 1
结束,但我希望这清楚地传达了我想要完成的事情。谢谢你的帮助。
答案 0 :(得分:0)
您可以使用for
- 循环中的Jinja2 loop.index
:
{% for item in list %}
Heading {{loop.index}}: {{item}}
{% endfor %}
方便地loop.index
从1开始,这应该适合你。
示例,为模板提供以下列表
l=["first heading", "second", "third", "fourth", "fifth"]
将其输入:
{% for item in l %}
<h{{loop.index}}>{{ item }}</h{{loop.index}}>
{% endfor %}
输出结果为:
<h1>first heading</h1>
<h2>second</h2>
<h3>third</h3>
<h4>fourth</h4>
<h5>fifth</h5>
但是,如果您的列表只包含连续顺序的整数,为什么不简单地使用它们而不是索引?
{% for item in list %}
Heading {{ item }}
{% endfor %}
答案 1 :(得分:0)
通过阅读您的评论到另一个先前的答案,您似乎需要字典而不是列表。
my_dictionary = { "Heading x": 1, "Heading Y":2 } #..and so on
然后,在您的模板中
{% for key, value in my_dict.iteritems() %}
{{ key }} : {{ value }}
{%endfor %}
这会给你:
Heading X : 1
Heading Y : 2