2024-04-20 05:54:41 发布
网友
我在理解像{{ something.render() | safe }}这样的表达式的作用时遇到了一个小问题。
{{ something.render() | safe }}
据我所见,如果没有safe关键字,它将输出整个html文档,而不仅仅是真正的内容。
safe
我想知道的是,它实际上是做什么的,它是如何运作的。
对于任何希望以编程方式使用safe过滤器的人:将其包装在一个markupsafe.Markup类中,Jinja2依赖于这个类。
markupsafe.Markup
通常文本是HTML转义的(因此<b>将被写为<b>,它将呈现为<b>)。
<b>
<b>
当你把|safe放在某物后面时,你告诉模板引擎你已经自己逃逸了文本,即“直接呈现它是安全的”。所以它不会为你编码。
|safe
有关详细信息:http://jinja.pocoo.org/docs/templates/#html-escaping
safe筛选器显式地将字符串标记为“安全”,即,如果启用了自动转义,则不应自动转义该字符串。
关于这个过滤器的文档是here。
请参阅manual escaping一节,查看哪些字符符合转义条件。
对于任何希望以编程方式使用safe过滤器的人:将其包装在一个
markupsafe.Markup
类中,Jinja2依赖于这个类。通常文本是HTML转义的(因此
<b>
将被写为<b>
,它将呈现为<b>
)。当你把
|safe
放在某物后面时,你告诉模板引擎你已经自己逃逸了文本,即“直接呈现它是安全的”。所以它不会为你编码。有关详细信息:http://jinja.pocoo.org/docs/templates/#html-escaping
safe
筛选器显式地将字符串标记为“安全”,即,如果启用了自动转义,则不应自动转义该字符串。关于这个过滤器的文档是here。
请参阅manual escaping一节,查看哪些字符符合转义条件。
相关问题 更多 >
编程相关推荐