python - Flask 模板 - For 循环迭代键 :value

标签 python flask jinja2

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

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

最佳答案

这是你的错误所在:

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

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

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

有关更多信息,请参阅 Jinja 的文档. 当您在 Jinja2 中编写语句(if, for) 时,您使用 {% statement %} 但是当您正在访问一个变量,然后只需使用 {{ variable }}

关于python - Flask 模板 - For 循环迭代键 :value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45167508/

相关文章:

python - 为什么 Python 的 datetime.strftime ('%w' ) 和 datetime.weekday() 对星期几使用不同的索引?

python - 为什么这个 Jinja nl2br 过滤器会转义 <br >'s but not <p>' s?

python - 如何在 Flask 中获取提交表单的名称?

python - Flask - 在 after_request 或 teardown_request 中访问请求

python - Django 在表单中呈现选择字段的显示名称

jinja2 - 如何使用 jinja2 过滤器过滤掉空列表?

Python 异步 : Running subprocess_exec on a worker thread

Python 脚本未创建足够的输出行

Python:带上标指数的科学记数法

python - 使用Python访问MySQL时如何检索Google Cloud-SQL中的列名称?