【问题标题】:Flask Template - For Loop Iteration key:valueFlask 模板 - For 循环迭代键:值
【发布时间】:2017-12-23 08:44:59
【问题描述】:

我有一个 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}}']}}

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

【问题讨论】:

  • 您是否尝试删除 segment 周围的 {{ }}

标签: python flask jinja2


【解决方案1】:

这是您的错误所在:

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

里面不需要{{ }}。 应该只是:

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

有关更多信息,请参阅Jinja 的文档。 当您在Jinja2 中编写语句(iffor)时,您使用{% statement %},但当您访问变量时,只需使用{{ variable }}

【讨论】:

  • 感谢 Kemis - 感谢您的快速回复,您的建议非常有效!
【解决方案2】:

这是一个解决方案

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

【讨论】:

    猜你喜欢
    • 2014-08-24
    • 2016-05-10
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    相关资源
    最近更新 更多