Python 使用Jinja2模板标记时未呈现Flask html

Python 使用Jinja2模板标记时未呈现Flask html,python,html,flask,jinja2,template-engine,Python,Html,Flask,Jinja2,Template Engine,我正在使用(可怕的)来建立一个网站,我现在有一个html不能正确呈现的问题。我的模板中有一行if-else,这取决于public变量是否为True: {{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' }} {{theInfo if public else'此信息已隐藏} 不幸的是,这只是在浏览器中显示html,而不是呈现它。我是否需

我正在使用(可怕的)来建立一个网站,我现在有一个html不能正确呈现的问题。我的模板中有一行if-else,这取决于
public
变量是否为True:

{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' }}
{{theInfo if public else'此信息已隐藏}
不幸的是,这只是在浏览器中显示html,而不是呈现它。我是否需要让Jinja知道应该呈现它的html


欢迎所有提示

如果要基于某个值显示不同的html,则需要首先在调用
render\u template

蟒蛇

def view():
   variablename = True
   return flask.render_template('page.html', public=variablename)
若要检查此值,请在花括号内添加if语句,请参见下面的代码

html

{%if public%}
公众是真的

{%else%} {%endif%}

好的第一步是阅读Miguel Grinberg的教程

如果要基于某个值显示不同的html,则需要首先在调用
render\u template

蟒蛇

def view():
   variablename = True
   return flask.render_template('page.html', public=variablename)
若要检查此值,请在花括号内添加if语句,请参见下面的代码

html

{%if public%}
公众是真的

{%else%} {%endif%}

好的第一步是阅读Miguel Grinberg的教程

默认情况下,Jinja将转义传递的数据。因此,您需要明确告诉Jinja数据是安全的,可以使用:

{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' | safe }}
{{theInfo if public else'此信息已隐藏| safe}

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

{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' | safe }}
{{theInfo if public else'此信息已隐藏| safe}

尝试不使用花括号和
。Jinja使用
{{
表示variables@itzmeontv-问题是,这是if语句的一部分。我编辑了问题以澄清这一点。try的可能重复项不带花括号和
。Jinja使用
{{
variables@itzmeontv-问题是,这是if声明的一部分。我编辑了问题以澄清这一点。可能重复的