如何使用 Jinja2 模板在烧瓶中解码 &#39 [重复]

Posted

技术标签:

【中文标题】如何使用 Jinja2 模板在烧瓶中解码 &#39 [重复]【英文标题】:How to decode &#39 in flask with Jinja2 template [duplicate] 【发布时间】:2016-08-22 10:45:40 【问题描述】:

当我尝试在 Jinja2 模板中写入来自 wtforms 的错误时,它返回未解码的报价。我该如何解决?

% if registrationForm.errors %
    <script>swal("Error!", " registrationForm.errors['password'] ", "error")</script>
% endif %

错误等于

'email': ['This field is required.'], 'username': ['This field is required.'], 'acceptTOS': ['This field is required.'], 'csrf_token': ['CSRF token missing'], 'password': ['This field is required.']

【问题讨论】:

【参考方案1】:

使用 safe 模板过滤器 - 它告诉 jinja2 不要再应用任何过滤器。

将字符串标记为可以安全地包含在 html/XML 输出中,而无需 需要逃脱。

用法示例:

 errors|safe 

或者到,

 errors | tojson | safe 

或者也可以在 Flask 中使用Markup 将其标记为安全。

【讨论】:

效果很好,但“tojson | safe”在参数列表后抛出“Uncaught SyntaxError: missing )” 我只是建议 errors |安全 就足够了 - 在早期版本的烧瓶 错误 | tojson |安全 用于使用。 最后,我用这个&lt;script&gt;swal("Error!", "% for error in registrationForm.errors.keys() %[ error ] registrationForm.errors[error][0] \n% endfor %", "error")&lt;/script&gt;解决了更多问题 错误 | tojson |安全 或 错误 | tojson 对我有用,但不是 errors|safe

以上是关于如何使用 Jinja2 模板在烧瓶中解码 &#39 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

找不到烧瓶模板[重复]

遇到未知标签'with'

使用 Flask 和 Jinja2 单击时无法加载模板 HTML [重复]

如何让 python 使用 Flask 和 JINJA2 从动态表中检索用户输入的数据

jinja2.exceptions.TemplateSyntaxError: 意外字符'&'

使用 Flask/Jinja2 将 HTML 传递给模板