user_loader的作用如下:
首先妳的代碼如下:
@lm.user_loader
def load_user(id):
return User.query.get(int(id))
Im應該是LoginManager的實例,@是python的修飾器,就相當於:
load_user = lm.user_loader(load_user)
當妳調用load_user(id)就相當於調用lm.user_loader(load_user)(id)
下面我們來看壹下user_loader的源碼:
因此我們知道,lm.user_loader(load_user)返回的還是load_user,只不過為LoginManager的實例新增了壹個user_callback屬性。
所以當妳調用load_user(id)就是返回數據庫中這個id對應的用戶(記錄)。