我正在使用(真棒)Flask framework来构建一个网站,现在我遇到了一个html无法正确呈现的问题。我的模板中有一行if-else取决于username
变量是否为True:
public
不幸的是,这只是在浏览器中显示html而不是渲染它。我是否需要以某种方式让Jinja知道它的html应该呈现?
欢迎所有提示!
答案 0 :(得分:4)
默认情况下,Jinja会转义传递的数据。因此,您需要明确告诉Jinja要使用的数据是safe
:
{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' | safe }}
答案 1 :(得分:0)
如果您想根据值显示不同的html,首先需要在调用render_template
蟒
def view():
variablename = True
return flask.render_template('page.html', public=variablename)
要检查此值,请在大括号内添加if语句,请参阅下面的代码
HTML
{% if public %}
<p>Public is true!</p>
{% else %}
<span ..../>
{% endif %}
迈出良好的第一步是完成Miguel Grinberg的教程。 http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world