python - 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 ?
解决方案
当登录用户返回您的网站时,他们的浏览器会将与您的网站相关的 cookie 发送到服务器。与其他现代 Web 框架一样,flask 不会将用户的凭据存储在 cookie 中,而是存储会话 ID。然后flask会使用这个会话ID来查找数据库并找到正确的用户信息并将其发送回浏览器。所以这里是load_user
函数启动。load_user
是flask-login登录管理器使用的回调函数。当flask需要查找并加载与特定会话ID相关的用户时,它会调用这个函数。这也是它在 model.py 中的原因,因为它与数据库直接相关。
推荐阅读
- angularjs - Angular - 将视图连接到其他和/或父组件
- python-3.x - Spyder 3.2.8:代码仅在重新启动 Spyder/Kernel 后第一次采用更改
- html - 是否可以创建一种 HTML 对象(即使使用框架)
- sapui5 - 无法从一个视图导航到另一个视图
- python - Django:在表格中显示模型值
- java - javafx 从标签跨屏幕传输文本
- python - groupby 在有序分类列上的奇怪行为
- android - Android Studio 应用程序无法在导出的 .apk 上正确显示
- javascript - React Native - 如何显示 Google Place Photos API 返回的图像?
- javascript - 如何遍历angularjs中的对象数组