flask - jinja模板forloop增加循环索引

时间:2017-01-18 09:31:16

标签: python templates for-loop flask jinja2

我正在研究一个烧瓶项目。在Jinja模板中,for循环中存在问题。我想打印字典的第一个索引的第一个索引。 newlist的输出是:

{1: [{'uid': 407, 'color': red},
{'uid': 407, 'color': black},
{'uid': 407, 'color': white}], 2:
[{'uid': 372, 'color': pink},
{'uid': 372, 'color': blue},
{'uid': 372, 'color': orange}], 3:
[{'uid': 28, 'color': green}]}

我想得到这样的输出:

{'uid': 407, 'color': red}
{'uid': 407, 'color': black}
{'uid': 407, 'color': white}

{'uid': 372, 'color': pink}
{'uid': 372, 'color': blue}
{'uid': 372, 'color': orange}

{'uid': 28, 'color': green}

如何编辑此for循环以达到该输出?在这里,我设置了两个索引手册( newlist.1.1 ),如何正确增加索引号?

{% for each in newlist %}
    {{ newlist.1.1 }}<br>
{% endfor %}

1 个答案:

答案 0 :(得分:4)

只要像对待模板外的字典那样对待它,这就是Jinja模板的重点:

>>> newlist  = {1: [{'uid': 407, 'color': 'red'}, {'uid': 407, 'color': 'black'}, {'uid': 407, 'color': 'white'}], 2: [{'uid': 372, 'color': 'pink'}, {'uid': 372, 'color': 'blue'}, {'uid': 372, 'color': 'orange'}], 3: [{'uid': 28, 'color': 'green'}]}
>>> 
>>> for k in newlist :
        for d in newlist[k]:
            print(d)


{'uid': 407, 'color': 'red'}
{'uid': 407, 'color': 'black'}
{'uid': 407, 'color': 'white'}
{'uid': 372, 'color': 'pink'}
{'uid': 372, 'color': 'blue'}
{'uid': 372, 'color': 'orange'}
{'uid': 28, 'color': 'green'}

所以,在你的模板中:

{% for k in newlist %}
    {% for d in newlist[k] %}
        {{ d }}<\br>
    {% endfor %}
    <\br>
{% endfor %}