Flask:如何将值传递到base.html?
一些数据需要存在于所有模板中 如何将所需数据传输到base.html 对于普通模板,我使用Flask:如何将值传递到base.html?,flask,jinja2,Flask,Jinja2,一些数据需要存在于所有模板中 如何将所需数据传输到base.html 对于普通模板,我使用render()函数 我不明白如何将其应用于基本模板,因为它不会传递到render() base.html 等等 {{balance}}-它应该显示在启用此base.html的所有页面上 为此,我需要在每个函数中为每个页面传递一个balance对象。如何使其在所有页面中只能传输一次?base.html文件用作其他html文件的模板。您不需要从应用程序中将其呈现为模板。相反,您将base.html作为其他ht
render()
函数
我不明白如何将其应用于基本模板,因为它不会传递到render()
base.html
等等
{{balance}}
-它应该显示在启用此base.html的所有页面上
为此,我需要在每个函数中为每个页面传递一个
balance
对象。如何使其在所有页面中只能传输一次?base.html文件用作其他html文件的模板。您不需要从应用程序中将其呈现为模板。相反,您将base.html作为其他html文件的扩展
在base.html文件中显示变量没有限制。下面的例子应该会有所帮助
base.html
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
{% extends "base.html" %}
{% block content %}
<h1>Homepage</h1>
{% endblock %}
您好,您是否介意添加一些详细信息或代码,向我们展示您尝试过的内容和未成功的内容,以及您想要的输出内容。@monsieuralfonse64已更新,谢谢。这就是问题所在。您需要为每一页传递一个标题。这很不方便,而且代码重复。我需要为整个站点传递一次。例如,在Django中,它被称为context_processor,Jinja2也有context processor,而且,还有一些对象可用于任何模板。Flask登录的当前用户就是其中之一,所以如果balance是
当前用户.balance
,您可以在任何模板中使用它。我会小心的<代码>当前用户可能是无
是否用户尚未登录。这就是为什么我不喜欢基本模板中的用户数据的整个概念-但那只是我:-)
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
{% extends "base.html" %}
{% block content %}
<h1>Homepage</h1>
{% endblock %}
from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
title = "Homepage"
return render_template('index.html',
title = title)
if __name__ == '__main__':
app.run(debug=True)