Flask Jinja 模板 '<br>'.join

6 投票
1 回答
4754 浏览
提问于 2025-04-17 17:13

我有一个列表:

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

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

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

但是,<br> 实际上在页面上显示出来了。有没有办法做到这一点,而不需要再添加另一个

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

1 个回答

14

如果列表中的每个元素都是安全的(也就是说,它们不包含任何需要特殊处理的标记或字符),那么你可以把它们标记为安全。

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

不过,为了确保安全,建议在把这些元素放入模板引擎之前,先对list中的每一项进行处理。这样做是为了防止你的网页受到HTML注入跨站脚本攻击(XSS)的威胁,尤其是当你的列表中包含用户提交的数据时。

更新:正如@Doobeh指出的那样,join过滤器可以接受一个自定义的安全分隔符,所以你可以使用这个功能,list中的内容依然会被处理成安全的形式:

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

撰写回答