cor*_*ump 15 python template-engine jinja2
我有点理解表达式的问题{{ something.render() | safe }}.
从我所看到的,没有safe关键字,它输出整个HTML文档,而不仅仅是真实的内容.
我想知道的是它实际上是做什么的,它是如何运作的.
dka*_*ins 21
通常情况下,文本是HTML转义的(因此<b>会被写出来<b>,将其呈现为<b>).
当你把|safe东西放在后面时,你告诉模板引擎你已经自己转义了文本,即"直接渲染它是安全的".所以它不会为你做那种编码.
有关更多信息,请访问:http://jinja.pocoo.org/docs/templates/#html-escaping
小智 5
扩展@data的答案,这是一个使用的示例markupsafe.Markup:
import markupsafe
vals = {}
vals["name"] = markupsafe.Markup("<b>Duck</b>, Donald")
html = template.render(vals)
Run Code Online (Sandbox Code Playgroud)
生成的 HTML 会在模板包含 的任何地方以粗体显示 Donald 的姓氏{{name}}。