Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 转义字符串,然后在jinja中添加html标记_Python_Jinja2 - Fatal编程技术网

Python 转义字符串,然后在jinja中添加html标记

Python 转义字符串,然后在jinja中添加html标记,python,jinja2,Python,Jinja2,我有一个字符串,我想转义,然后只添加特定的html标记,然后在jinja中打印它。这就是我想做的: {{ user.info | e | nl2br | safe }} 所以本质上我想将新行转换为,但转义用户提供的每个html标记。这似乎不起作用,标签也被漏掉了。如何在Jinja中实现这种行为?好的,我找到了一个解决方案,似乎escape实际上返回了一个标记对象,所以调用safe对它没有帮助。我必须定义一个自定义过滤器: @app.template_filter('escape_custom

我有一个字符串,我想转义,然后只添加特定的html标记,然后在jinja中打印它。这就是我想做的:

{{ 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}},它会工作吗?不会,它会给我相同的结果。显然,保险箱和逃生箱在同一环境下不起作用。