追加到 jinja2 中的列表,而不将其“打印”到 html

问题描述 投票:0回答:1

7个月前有人问过类似的问题,但没有得到回复。

我遇到以下问题: 我想在 for 循环中附加到 jinj2 中的列表。

有效的是:

{% set test = [] %}
{% for i in range(5) %}
    {{ test.append(i) }}
{% endfor %}

但它会将 {{test.append(i)}} 的返回值(即 None)“打印”到我的 html 文档中。所以我必须把它注释掉

<! -- {{ test.append(i) }} -->

它执行 jinja 代码,但“禁用”html 的返回值。

但是我问自己,是否有更好的解决方案。

{% set test.append(i) %}

例如不起作用(预期标记“语句块结束”,得到“(”)

python html jinja2
1个回答
0
投票

我找到了使用命名空间的解决方案。

{% set data = namespace(test=[]) %}
{% for i in range(5) %}
    {% set data.test = data.test + [i] %}
{% endfor %}

{{ data.test }}
© www.soinside.com 2019 - 2024. All rights reserved.