Flask 模板 - For 循环迭代 key:value

Flask Template - For Loop Iteration key:value

提问人:Johnny John Boy 提问时间:7/18/2017 最后编辑:kemisJohnny John Boy 更新时间:9/15/2017 访问量:54411

问:

我有一个 HTML 模板,其中包含一个 Flask Jinja for 循环,它生成一个表格,如下所示:

<tbody>
  {% for segment in segment_details %}
    <tr>
      <td>{{segment}}</td>
      <td>{{segment_details['{{segment}}']}}</td>
    </tr>
  {% endfor %}
</tbody>

我正在尝试遍历不同长度/键的文档,并将表中的每一行显示为键和值。在我的 Python 代码中,我得到了这个在 shell 中具有所需响应:

        for item in segment_details:
            print(item, segment_details[item])

但是在 Flask 中,我正确地列出了所有行,但

{{segment_details['{{segment}}']}}

没有产生任何值,我尝试过使用和不使用单引号。这可能吗?

python 烧瓶 jinja2

评论

1赞 Wondercricket 7/18/2017
你试过去掉周围吗?{{ }}segment

答:

22赞 kemis 7/18/2017 #1

这是您的错误所在:

<td>{{segment_details['{{segment}}']}}</td>

不需要内部。 它应该只是:{{ }}

<td>{{segment_details[segment]}}</td>

有关详细信息,请参阅 Jinja 的文档。 当你在编写语句(,)时,你使用,但当你访问一个变量时,只需使用。ifforJinja2{% statement %}{{ variable }}

评论

0赞 Johnny John Boy 7/19/2017
谢谢凯米斯 - 感谢您的快速回复,您的建议非常有效!
0赞 Liam Sholts 12/30/2022
我只是因为无聊而读书。我刚才才学到了一些东西,谢谢!赢得了点赞!
16赞 Luis Carlos Herrera Santos 9/15/2017 #2

这是一个解决方案

<tbody>
  {% for key, segment in segment_details.items() %}
    <tr>
      <td>{{ key }}</td>
      <td>{{ segment }}</td>
    </tr>
  {% endfor %}
</tbody>