Bri*_*pio 3 python jinja2 flask
我有一个清单:
list = ['var','var','var']
Run Code Online (Sandbox Code Playgroud)
在我的Jinja模板中,我想做:
{{'<br>'.join(list)}}
Run Code Online (Sandbox Code Playgroud)
但<br>
实际上显示在页面上.有没有办法这样做而不添加另一个
{% for item in list %}
{{item}}
<br>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
如果列表中的每个元素都是安全的(即不包含标记,或者在插入结果之前应该转义的字符),那么您可以将其标记为:
{{'<br>'.join(list)|safe}}
Run Code Online (Sandbox Code Playgroud)
可以肯定的是,list
如果你想以这种方式使用它,你应该在将每个项目提供给模板引擎之前将其转义.否则,您的页面可能会受到HTML Injection/XSS的攻击(特别是如果您的列表包含用户提交的数据).
更新:正如@Doobeh所指出的,join
过滤器接受自定义安全分隔符,因此您可以使用它,并且list
仍然会转义内容:
{{ list|join('<br>'|safe) }}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2188 次 |
最近记录: |