flask-login获取登录属性异常
在使用flask-login管理登录时,遇到使用数据库模型属性作为标识符却报错attributeerror: 'str' object has no attribute 'id'以及current_user.name返回的属性为none的问题。
这可能是由于在初始化user类时未正确获取数据库模型属性。下面提供修改后的代码:
from flask_login import UserMixin from sqlalchemy import Column, Integer, String from database import SessionLocal, engine, Base class 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_loader def load_user(user_id): # 创建数据库会话 db = SessionLocal() user = db.query(User).get(user_id) if user: return User(user) return None
在修改后的代码中:
通过这些修改,可以正确获取数据库模型属性,从而解决报错和属性返回none的问题。
以上就是Flask-Login 获取登录属性异常:如何解决 'str' object has no attribute 'id' 和 current_user.name 为 None 的问题?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号