You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask-Login登录报错AttributeError: type object 'User' has no attribute 'get'求助

问题根因

Flask-Login 依赖 @login_manager.user_loader 装饰的回调函数,从 Session 存储的用户ID加载对应的用户对象。从报错回溯可以看到,你的load_user回调中调用了User.get(user_id),但 Flask-SQLAlchemy 的模型默认不存在get类方法,因此触发属性错误。

解决方案

在你的代码中添加/修改user_loader回调函数即可,函数位置建议放在User类定义完成后、路由定义之前,修改后的代码如下:

@login_manager.user_loader
def load_user(user_id):
    # 替换原来的User.get(user_id)为SQLAlchemy的标准查询写法
    # 因为session中存储的user_id为字符串类型,转为int匹配id字段的整数类型
    return User.query.get(int(user_id))

修改完成后重新启动服务即可解决该报错。

额外可优化点

你定义的LoginForm类中,密码输入框的placeholder误写为了Username,可以改为Password避免前端显示歧义。

内容的提问来源于stack exchange,提问作者Christophe Chouinard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:27:02