在 Flask 应用程序的多个页面中从服务器获取数据
Fetching data from server in multiple pages of Flask application
我将 Python 与 Flask 和 Jinja2 一起使用,并且我正在尝试实现侧边栏。在 HTML 页面中,我得到了这个:
{% include "sidebar.html" %}
我想要的侧边栏文件是有一个最新的用户块。为此,我需要从服务器获取 sidebar.html 文件的结果。但是我应该在 python 文件中的什么地方编写代码呢?
实现此功能的方法是在 python 端创建一个 Jinja 变量:
app = Flask(__name__)
app.jinja_env.globals.update({
'latest_users': get_latest_users()
})
def get_latest_users() {
return ['Mark', 'Jane', 'Sally']
}
现在可以从任何 Jinja 模板访问变量 latest_users
,只需执行以下操作即可:
{% for user in latest_users %}
<p>{{ user }}</p>
{% endfor %}
您可以将变量传递给模板。当您使用 include
时,您的变量仍然可以在此包含的部分中使用:
@app.route('/')
def index():
users = ['user1', 'user2']
debug = False
render_template('index.html', users=users, debug=debug)
# index.html
{% include "sidebar.html" %}
#sidebar.html
{% for user in users %}
<p>{{ user }}</p>
{% endfor %}
{{debug}}
我将 Python 与 Flask 和 Jinja2 一起使用,并且我正在尝试实现侧边栏。在 HTML 页面中,我得到了这个:
{% include "sidebar.html" %}
我想要的侧边栏文件是有一个最新的用户块。为此,我需要从服务器获取 sidebar.html 文件的结果。但是我应该在 python 文件中的什么地方编写代码呢?
实现此功能的方法是在 python 端创建一个 Jinja 变量:
app = Flask(__name__)
app.jinja_env.globals.update({
'latest_users': get_latest_users()
})
def get_latest_users() {
return ['Mark', 'Jane', 'Sally']
}
现在可以从任何 Jinja 模板访问变量 latest_users
,只需执行以下操作即可:
{% for user in latest_users %}
<p>{{ user }}</p>
{% endfor %}
您可以将变量传递给模板。当您使用 include
时,您的变量仍然可以在此包含的部分中使用:
@app.route('/')
def index():
users = ['user1', 'user2']
debug = False
render_template('index.html', users=users, debug=debug)
# index.html
{% include "sidebar.html" %}
#sidebar.html
{% for user in users %}
<p>{{ user }}</p>
{% endfor %}
{{debug}}