python - 将安全过滤器应用于连接的 html 字符串

标签 python flask jinja2 wtforms

我一直在尝试这样做:

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

尝试以 html 格式获取此输出:

<span class="help-inline">Some message</span>'

但是 html 被转义了,我将上面的内容打印为字符串。

所以问题是如何在 Jinja2 中将连接的字符串标记为 safe


当前输出( Firebug ):

span as html encoded string

预期输出:

correct html output


更新:试过但没有用:

{% autoescape false %}
    {{ error_message|safe }}
    {# also tried without safe #}
{% endautoescape %}

最佳答案

将连接的每个 部分字符串 标记为 safe 但是会给出所需的输出:

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

或稍微好一点:

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

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

关于python - 将安全过滤器应用于连接的 html 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185967/

相关文章:

python-3.x - 通过 enctype ="multipart/form-data"上传多个文件,第一个上传的文件大小始终为0,其余都可以

twitter-bootstrap-3 - Jinja/Wtform aria-需要验证

python - 在 Jinja2 模板中访问类方法

flask - 如何使用带有 Vuejs 的 “Mustache” 语法的 Flask 模板?

java - Python 3 中的自定义排序

python - 从文本文件中订购具有多种数据类型的列表

python - 使用 Flask (Python) 在谷歌数据存储中存储图像

javascript - 有什么办法可以将Javascript中上传的附件文件发送到Python/Flask吗?

python - 将单个字典值从字符串转换为整数?

flask - 如何提供博客摘录而不必使用 Jinja2 模板显示 html 代码?