在字典中的Flask Jinja2模板字典

时间:2017-05-20 17:24:13

标签: python dictionary flask jinja2

我正在使用烧瓶应用程序中的以下字典,无法弄清楚如何在Jinja2模板中选择嵌套字典值。

dict = {"key1": {"subkey1":"subvalue1","subkey2":"subvalue2","subkey3":"subvalue3"}, "key2": {"subkey1":"subvalue1","subkey2":"subvalue2","subkey3":"subvalue3"}}

我能够得到python shell中的每个值,如下所示:

print(dict['key1']['subkey1'])
print(dict['key1']['subkey2'])
print(dict['key1']['subkey3'])

我将dict发送到模板,如下所示:

return render_template('template.html', dict=dict)

然后在我尝试使用模板时:

{% for item in dict %}
    <td>{{ item.subkey1 }}</td>
    <td>{{ item.subkey2 }}</td>
    <td>{{ item.subkey3 }}</td>
{% endfor %}

但是这并没有像我希望的那样返回子值。

2 个答案:

答案 0 :(得分:3)

{% for key1,item1 in dict.items() %}
   {% for key2,nested_item in item1.items() %}
      <td> {{nested_item}} </td>
   {% endfor %}
{% endfor %}

dict.item()用于获取字典dict中的键和项目。

访问字典需要1级循环,访问字典字典需要2级循环。

答案 1 :(得分:0)

这个问题根本与Jinja无关。

当您使用for x in y迭代dict时,您只获取键,而不是值。如果要迭代值,则需要明确地执行此操作:

{% for item in dict.values() %}