5

我有一个清单:

list = ['var','var','var']

在我的 Jinja 模板中,我想做:

{{'<br>'.join(list)}}

<br>实际显示在页面上。有没有办法在不添加另一个的情况下做到这一点

{% for item in list %}
{{item}}
<br>
{% endfor %}
4

1 回答 1

11

如果列表中的每个元素都是安全的(即不包含标记,或者在插入结果之前应该转义的字符),那么您可以将其标记为:

{{'<br>'.join(list)|safe}}

可以肯定的是,如果您想以这种方式使用它,您应该在将每个项目提供list给模板引擎之前对其进行转义。否则,您的页面可能会受到HTML 注入/ XSS的攻击(尤其是如果您的列表包含用户提交的数据)。

更新:正如@Doobeh 所指出的,join过滤器接受一个自定义的安全分隔符,所以你可以使用它,并且内容list仍然会被转义:

{{ list|join('<br>'|safe) }}
于 2013-02-26T19:35:06.317 回答