首页 > 解决方案 > flask-login :无法从文档中理解它是如何工作的

问题描述

@login_manager.user_loader
def load_user(user_id):
    return User.query.get(int(user_id))

load_user(user_id) 方法的用途是什么?它什么时候会调用?在文档中提到它用于从存储在会话中的用户 ID 重新加载用户对象。我不明白 session 从哪里获取 user_id 以及该方法从哪里重新加载用户对象。以及为什么它需要写入 models.py 文件?

在记录期间,我们在 login_user() 方法中传递用户对象,那么该方法是否在会话中添加用户对象并将该用户设置为 current_user ?

标签: pythonflaskflask-login

解决方案


当登录用户返回您的网站时,他们的浏览器会将与您的网站相关的 cookie 发送到服务器。与其他现代 Web 框架一样,flask 不会将用户的凭据存储在 cookie 中,而是存储会话 ID。然后flask会使用这个会话ID来查找数据库并找到正确的用户信息并将其发送回浏览器。所以这里是load_user函数启动。load_user是flask-login登录管理器使用的回调函数。当flask需要查找并加载与特定会话ID相关的用户时,它会调用这个函数。这也是它在 model.py 中的原因,因为它与数据库直接相关。


推荐阅读