我跟随一个烧瓶教程,他在jinja2模板中使用“| safe”。为什么我们需要这个管道符号和保险箱?在
不使用safe,它会打印所有的html标记。在
通过使用| safe
,它显示了正确的格式。为什么会这样工作?在
以下是jinja2代码:
{% extends "layout.html" %}
{% block body %}
<h1>{{article.title}}</h1>
<small>Written by {{article.author}} on {{article.create_date}}</small>
<hr>
<div>
{{article.body | safe}}
</div>
{% endblock %}
从DOCS:
在默认情况下自动转义所有内容的模式下,要将内容标记为安全的,因此不需要转义,请使用筛选器:
Working with automatic escaping。在
使用
| safe
Jinja2将打印变量中的符号,这意味着它不会将“危险”符号转换为html实体(Jinja2默认情况下是为了逃避“危险”符号)。如果信任变量的内容,请使用此选项,因为在相反的情况下可能存在漏洞,例如XSS。在相关问题 更多 >
编程相关推荐