如何在 Flask render_template 中渲染变量的 html

Awe*_*ome 4 python flask

我正在使用 Flask render_template 方法来渲染我的 html 页面,如下所示:

render_template('index.html', content="<div>Hello World!</div>")

我的index.html是:

<html lang="en">
<head>
<title>Hello</title>
</head>
<body>
{{content}}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的页面正在替换内容变量,但它呈现<div>Hello World!</div>为文本。

有没有办法从 render_template 上下文变量渲染 html?

Tur*_*son 8

Flask 打开 Jinja 的自动转义功能。引用手册如何禁用它:

有三种方法可以实现这一点:

  1. 在 Python 代码中,将 HTML 字符串包装在 Markup 对象中,然后再将其传递给模板。这通常是推荐的方式。

  2. 在模板内部,使用|safe过滤器将字符串显式标记为安全 HTML ( {{ myvariable|safe }})`

  3. 暂时完全禁用自动转义系统。