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

问题描述 投票:124回答:3

我正在为Flask和SQLAlchemy构建一个管理员,我想使用render_template将不同输入的HTML传递给我的视图。模板框架似乎自动转义html,因此所有转换为html实体。如何禁用它以便HTML呈现正确?

python jinja2 flask
3个回答
257
投票

理想的方式是

{{ something|safe }}

而不是完全关闭自动逃逸。


89
投票

您还可以从代码中声明HTML安全:

from flask import Markup
value = Markup('<strong>The HTML String</strong>')

然后将该值传递给模板,他们没有|safe它。


12
投票

来自jinja docs部分HTML Escaping

启用自动转义功能后,除默认标记为安全的值外,默认情况下都会转义所有内容。这些可以由应用程序标记,也可以使用安全过滤器在模板中标记。

例:

 <div class="info">
   {{data.email_content|safe}}
 </div>
© www.soinside.com 2019 - 2024. All rights reserved.