转义字符串然后在 jinja 中添加 html 标签
Escaping string and then adding html tags in jinja
我有一个要转义的字符串,然后只添加特定的 html 标签,然后再在 jinja 中打印它。这就是我想要做的:
{{ user.info | e | nl2br | safe }}
所以基本上我想将新行转换为 <br/>
但转义用户提供的每个 html 标记。这似乎不起作用,<br/>
标签也被转义了。我怎样才能在 Jinja 中实现这种行为?
好吧,我找到了一个解决方案,似乎转义实际上是 returns 一个标记对象,所以调用 safe 对它没有帮助。我必须定义一个自定义过滤器:
@app.template_filter('escape_custom')
def escape_custom(string):
string = str(jinja2.escape(string))
return jinja2.Markup(string.replace('\n', '<br/>\n'))
我有一个要转义的字符串,然后只添加特定的 html 标签,然后再在 jinja 中打印它。这就是我想要做的:
{{ user.info | e | nl2br | safe }}
所以基本上我想将新行转换为 <br/>
但转义用户提供的每个 html 标记。这似乎不起作用,<br/>
标签也被转义了。我怎样才能在 Jinja 中实现这种行为?
好吧,我找到了一个解决方案,似乎转义实际上是 returns 一个标记对象,所以调用 safe 对它没有帮助。我必须定义一个自定义过滤器:
@app.template_filter('escape_custom')
def escape_custom(string):
string = str(jinja2.escape(string))
return jinja2.Markup(string.replace('\n', '<br/>\n'))