Python 转义字符串,然后在jinja中添加html标记
我有一个字符串,我想转义,然后只添加特定的html标记,然后在jinja中打印它。这就是我想做的:Python 转义字符串,然后在jinja中添加html标记,python,jinja2,Python,Jinja2,我有一个字符串,我想转义,然后只添加特定的html标记,然后在jinja中打印它。这就是我想做的: {{ user.info | e | nl2br | safe }} 所以本质上我想将新行转换为,但转义用户提供的每个html标记。这似乎不起作用,标签也被漏掉了。如何在Jinja中实现这种行为?好的,我找到了一个解决方案,似乎escape实际上返回了一个标记对象,所以调用safe对它没有帮助。我必须定义一个自定义过滤器: @app.template_filter('escape_custom
{{ user.info | e | nl2br | safe }}
所以本质上我想将新行转换为,但转义用户提供的每个html标记。这似乎不起作用,标签也被漏掉了。如何在Jinja中实现这种行为?好的,我找到了一个解决方案,似乎escape实际上返回了一个标记对象,所以调用safe对它没有帮助。我必须定义一个自定义过滤器:
@app.template_filter('escape_custom')
def escape_custom(string):
string = str(jinja2.escape(string))
return jinja2.Markup(string.replace('\n', '<br/>\n'))
如果删除|安全过滤器-{user.info | e | nl2br}},它会工作吗?不会,它会给我相同的结果。显然,保险箱和逃生箱在同一环境下不起作用。