我正在为Flask和SQLAlchemy构建一个管理员,我想使用render_template
将不同输入的HTML传递给我的视图。模板框架似乎自动转义html,因此所有转换为html实体。如何禁用它以便HTML呈现正确?
理想的方式是
{{ something|safe }}
而不是完全关闭自动逃逸。
您还可以从代码中声明HTML安全:
from flask import Markup
value = Markup('<strong>The HTML String</strong>')
然后将该值传递给模板,他们没有|safe
它。
来自jinja docs部分HTML Escaping:
启用自动转义功能后,除默认标记为安全的值外,默认情况下都会转义所有内容。这些可以由应用程序标记,也可以使用安全过滤器在模板中标记。
例:
<div class="info">
{{data.email_content|safe}}
</div>