Flask Template - For Loop Iteration键:值

Joh*_*Boy 10 python jinja2 flask

我有一个带有Flask Jinja for循环的HTML模板,它会生成一个表格,如下所示:

<tbody>
  {% for segment in segment_details %}
    <tr>
      <td>{{segment}}</td>
      <td>{{segment_details['{{segment}}']}}</td>
    </tr>
  {% endfor %}
</tbody>
Run Code Online (Sandbox Code Playgroud)

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

        for item in segment_details:
            print(item, segment_details[item])
Run Code Online (Sandbox Code Playgroud)

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

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

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

kem*_*mis 7

这是您的错误所在:

<td>{{segment_details['{{segment}}']}}</td>
Run Code Online (Sandbox Code Playgroud)

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

<td>{{segment_details[segment]}}</td>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见Jinja的文档。当你写一个声明(if,for中)Jinja2你使用{% statement %},但是当你访问一个变量就用{{ variable }}。


小智 5

这是一个解决方案

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