Python Flask匹配动态数据点到固定标题

时间:2014-04-30 06:04:05

标签: python html flask jinja2

我正在构建一个Flask应用程序我有一组5个动态数据点传递给我的模板。这些数据点以列表list = [1 , 2 , 3 , 4 , 5]传递。

我知道数据总是以相同的顺序出现。 1属于Heading 12,属于Heading 2等。

如何将此数据与正确的标题匹配?我最初的想法是遍历列表

{% for item in list %}
     Heading 1: {{ item }}
{% endfor %}

显然,这不会在标题上不起作用,所以它们都会以Heading 1结束,但我希望这清楚地传达了我想要完成的事情。谢谢你的帮助。

2 个答案:

答案 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