燒瓶登錄中使用時,我一直在它與我的一個星期,現在想了解以下兩個功能之間的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