Python 将安全筛选器应用于连接的html字符串

Python 将安全筛选器应用于连接的html字符串,python,flask,jinja2,wtforms,Python,Flask,Jinja2,Wtforms,我一直在努力做到这一点: {% set error_message = '<span class="help-inline">' + field.errors[0]|e + '</span>' %} {# ... code ... #} {{ error_message|safe }} 但是,将串联的每个部分字符串标记为安全,可以提供所需的输出: {% set error_message = '<span class="help-inline">'|safe

我一直在努力做到这一点:

{% set error_message = '<span class="help-inline">' + field.errors[0]|e + '</span>' %}
{# ... code ... #}
{{ error_message|safe }}
但是,将串联的每个部分字符串标记为
安全
,可以提供所需的输出:

{% set error_message = '<span class="help-inline">'|safe + field.errors[0]|e + '</span>'|safe %}
{%set error_message=''|safe+字段。错误[0]| e+''| safe%}
或者稍微好一点:

{% set error_message = ('<span class="help-inline">' ~ field.errors[0]|e ~ '</span>')|safe %}
{%set error_message=(''~field.errors[0]| e~'')| safe%}

(组合的
safe
过滤器用于连接到
~
的整个字符串。
+
对此不起作用)

是否有
{%autoescape false%}
帮助@frb刚试过,没用,还有其他想法吗?请参阅我如何尝试的更新。没有,抱歉。我认为在Jinja中使用
set
的赋值可能会以一种不尊重
|safe
自动转义的方式转义。这可能是一个错误。@frb好吧,我确实找到了一个解决方法,尽管看起来不是一个好的解决方案。现在将其作为答案发布,寻找更好的解决方案。
{% set error_message = ('<span class="help-inline">' ~ field.errors[0]|e ~ '</span>')|safe %}