首页 文章

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

提问于
浏览
112

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

3 回答

  • 228

    理想的方式是

    {{ something|safe }}
    

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

  • 83

    来自jinja docs部分HTML Escaping

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

    例:

    <div class="info">
       {{data.email_content|safe}}
     </div>
    
  • 11

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

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

    然后将该值传递给模板,它们不必 |safe 它 .

相关问题