我有一个 Flask 项目,当用户登录时,如果他有“mesa”访问权限,我会保存一个值:
session['user_name'] = user.name
这个变量存储0或1。然后,在我的应用程序的侧边栏菜单上,如果mesa等于1,则用户可以访问某些页面。碰巧在每条路径中我都必须调用它并传递到页面:
@app.route('/newclient', methods=["GET", "POST"])
def newclient():
[...]
mesa = session.get('mesa')
return render_template("newclient.html", ..., mesa=mesa)
我正在使用“base.html”在模板上调用
{% extends "base.html" %}
,并且此侧边栏菜单位于“base.html”文件上。随着我的路线数量不断增加,这变得越来越难以追踪。有没有更简单的方法来存储和恢复这个值?
您可以使用 context_processor https://flask.palletsprojects.com/en/3.0.x/templatating/#context-processors 自动将变量注入到模板的上下文中。
@app.context_processor
def inject_mesa():
return {"mesa": session.get('mesa')}