使用 Jinja2 模板标签时不呈现 Flask html

kra*_*r65 1 html python template-engine jinja2 flask

我正在使用(很棒的)Flask 框架来构建网站,但我现在遇到了 html 无法正确呈现的问题。我的模板中有一行带有 if-else 取决于public变量是否为 True:

{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' }}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只是在浏览器中显示 html,而不是渲染它。我是否需要以某种方式让 Jinja 知道它的 html 应该被渲染?

欢迎所有提示!

pla*_*aes 5

默认情况下,Jinja 会转义传递的数据。因此,您需要明确告诉 Jinja 数据safe要使用:

{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' | safe }}
Run Code Online (Sandbox Code Playgroud)