我有一些HTML内容要传递给模板进行渲染。但是,它会使标记转义为使用HTML实体(.ppk
),因此它们显示为代码而不是标记。如何渲染传递给模板的html?
<
tags = """<p>some text here</p>"""
render_template ('index.html',tags=tags)
我想要一个包含文字的段落。
{{ tags }}
'< some text here >'
答案 0 :(得分:9)
使用jinja2 safe
过滤器:
{{ tags | safe }}
safe
过滤器告诉模板引擎不要自动转义字符串(因为你手动转义它或者你确定字符串是安全的)。因此,如果用户引入该字符串并且您没有逃脱它,则可能会引发安全问题(&#34;不要信任用户&#34;)。
修改强>
正如@davidism所指出的,还有另一种方法 - 推荐的方法 - 将HTML传递给模板:使用python代码中的Markup
对象来包装要传递给模板的html代码。
tags = Markup("<p>some text here</p>")
并在您的模板中仅使用:
{{ tags }}
将打印
some text here