【问题标题】:How to decode &#39 in flask with Jinja2 template [duplicate]如何使用 Jinja2 模板在烧瓶中解码 &#39 [重复]
【发布时间】: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.']}

【问题讨论】:

    标签: python flask jinja2 flask-wtforms


    【解决方案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 }}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 2017-11-20
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多