为了账号安全,请及时绑定邮箱和手机立即绑定

Flask-Login中@login_manager.user_loader是做什么的?

Flask-Login中@login_manager.user_loader是做什么的?

翻阅古今 2019-04-07 09:37:43
不明白为什么要加这一段,而且不知道在什么情况下要使用这段代码?@login_manager.user_loaderdefload_user(userid):returnUser.get(userid)
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

login_user的时候会设置session["user_id"]用户发起一次http请求的时候ctx.user无值的时候通过某个callback当前登录用户,这个callback参数的user_id就是session['user_id']login_manager.user_loader就是注册这个callback文档写得清清楚楚啊......
                            
查看完整回答
反对 回复 2019-04-07
?
互换的青春

TA贡献1797条经验 获得超6个赞

参考源码:对于函数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。
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 632 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信