Flask-Login中@login_manager.user_loader是做什么的?@login_manager.user_loaderdef load_user(userid): return User.get(userid)
2 回答
HUWWW
TA贡献1874条经验 获得超12个赞
login_user的时候会设置session["user_id"]
用户发起一次http请求的时候ctx.user无值的时候通过某个callback当前登录用户, 这个callback参数的user_id就是session['user_id']
login_manager.user_loader就是注册这个callback
文档写得清清楚楚啊......
守着一只汪
TA贡献1872条经验 获得超3个赞
对于函数login_user(),当你调用他的时候会设置session['user_id'] = user_id;
对于装饰器@login_manager.user_loader,在user_loader(self, callback)中设置的是self.user_callback = callback,即注册了load_user()这个自定义的callback;
对于这个load_user()的使用,即self.callback的使用,参见方法reload_user(self, user=None),
他的作用就是即使你的user参数无值,也可以通过调用self.callback来得到这个user,并把这个user赋值给ctx.user。
添加回答
举报
0/150
提交
取消