使用 Jinja2 模板标签时 Flask html 未呈现
Flask html not rendered when using Jinja2 templating tag
我正在使用(很棒的)Flask framework 构建网站,但我现在遇到 html 无法正确呈现的问题。我的模板中有一行带有 if-else 取决于 public
变量是否为真:
{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' }}
不幸的是,这只是在浏览器中显示 html,而不是渲染它。我是否需要以某种方式让 Jinja 知道它的 html 应该被渲染?
欢迎所有提示!
如果您想根据某个值显示不同的 html,您需要先在调用 render_template
时发送该值
python
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
默认情况下 Jinja 转义传递的数据。因此,您需要明确告诉 Jinja 数据是 safe
以使用:
{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' | safe }}
我正在使用(很棒的)Flask framework 构建网站,但我现在遇到 html 无法正确呈现的问题。我的模板中有一行带有 if-else 取决于 public
变量是否为真:
{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' }}
不幸的是,这只是在浏览器中显示 html,而不是渲染它。我是否需要以某种方式让 Jinja 知道它的 html 应该被渲染?
欢迎所有提示!
如果您想根据某个值显示不同的 html,您需要先在调用 render_template
python
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
默认情况下 Jinja 转义传递的数据。因此,您需要明确告诉 Jinja 数据是 safe
以使用:
{{ theInfo if public else '<span style="background-color: green;">this info is hidden</span>' | safe }}