烧瓶登录中使用时,我一直在它与我的一个星期,现在想了解以下两个功能之间的differrence应用@ login_manager.user_loader功能净度上烧瓶登录
@login_manager.user_loader
def load_user(email):
try:
return User.query.filter(User.email == email).first()
except:
return None
@login_manager.user_loader
def load_user(email):
try:
return User.query.get(email)
except:
None
这两种功能都呈现如下所示
通过在我/登录路由打印表示右日志127.0.0.1 - - [14 /月/ 2016五点24分35秒]“GET /欢迎HTTP/1.1” 302 - 127.0.0.1 - - [14 /月/ 2016 5点24分35秒] “GET /登录下一=%2Fwelcome HTTP/1.1?” 200 -
但只有后者的功能实际上重定向我欢迎页面
前者功能(在上面的第一功能),显示了日志相同,但它不我重定向到欢迎页面,而是显示了我这个消息
login_manager.login_message = U “请登录访问此页面。”就像你正在使用SQLAlchemy的,我的权利
谁能解释这些
'email'是你的用户表的主键吗?可能不会。 'Model.query.get'根据主键进行查找。你的第一个功能很可能是基于错误的字段进行查询。 – dirn
(User_id和email是复合键)user_id是主键,电子邮件也是主键。 – Chamambom
删除裸露的excepts(坏模式)并查看实际错误。 – davidism