Flask Jinja 模板 '<br>'.join
我有一个列表:
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) }}