Flask-Login 获取登录属性异常:如何解决 ‘str’ object has no attribute ‘id’ 和 current_user.name 为 None 的问题?

flask-login 获取登录属性异常:如何解决 'str' object has no attribute 'id' 和 current_user.name 为 none 的问题?

flask-login获取登录属性异常

在使用flask-login管理登录时,遇到使用数据库模型属性作为标识符却报错attributeerror: ‘str’ object has no attribute ‘id’以及current_user.name返回的属性为none的问题。

这可能是由于在初始化user类时未正确获取数据库模型属性。下面提供修改后的代码:

from flask_login import UserMixinfrom sqlalchemy import Column, Integer, Stringfrom database import SessionLocal, engine, Baseclass User(UserMixin, Base):    __tablename__ = "users"    id = Column(Integer, primary_key=True, index=True)    name = Column(String, unique=True, index=True)    password = Column(String)    def __init__(self, user_id):        self.id = user_id.id        self.name = user_id.name    def get_id(self):        return str(self.id)@super_login.user_loaderdef load_user(user_id):    # 创建数据库会话    db = SessionLocal()    user = db.query(User).get(user_id)    if user:        return User(user)    return None

在修改后的代码中:

创建了一个数据库会话,以访问数据库。使用查询获取用户id对应的用户。如果找到用户,则将其转换为user类并返回。

通过这些修改,可以正确获取数据库模型属性,从而解决报错和属性返回none的问题。

以上就是Flask-Login 获取登录属性异常:如何解决 ‘str’ object has no attribute ‘id’ 和 current_user.name 为 None 的问题?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1353445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
类属性和实例属性为何在使用描述符后出现不一致?
上一篇 2025年12月13日 17:41:52
Django 中如何实现公用信息查询通用化?
下一篇 2025年12月13日 17:42:04

相关推荐

发表回复

登录后才能评论
关注微信