启用autoescape=true时,如何在Jinja2模板中输出>符号?
解决Jinja2开启autoescape=true时输出>符号的问题
在保持autoescape=true启用的前提下,有两种实用方法可以输出正确的>符号:
方法一:使用safe过滤器
在模板中给变量添加safe过滤器,明确告知Jinja2该变量内容是安全的HTML,无需二次转义。修改后的模板代码如下:
{{ item|safe }}
这样原本的abcd >> efgh会被直接输出,浏览器解析后就会显示为abcd >> efgh。
方法二:在Python端用Markup标记安全内容
在Python代码里,用Jinja2的Markup类包裹需要输出的内容,提前标记其为安全HTML。示例代码:
from jinja2 import Markup item = Markup("abcd >> efgh") # 将item传入模板进行渲染
此时即便模板开启了自动转义,Jinja2也不会对已标记为安全的内容做转义处理,最终输出符合预期。
内容的提问来源于stack exchange,提问作者Himanshu
相关产品推荐
相关产品推荐

