flask-login登录属性获取问题?

我在使用flask-login进行登录管理,使用的是数据库模型里面的属性做标识符,以下为我的登录回调函数
flask-login登录属性获取问题?

代码片段

class User(UserMixin):

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):

return User(user_id)

以下为我的登录过程,我在表单验证成功后将数据库模型传入User这个类当中,想通过数据库.字段名去获取对应的用户id,但是为什么总是提示AttributeError: 'str' object has no attribute 'id'这个报错呢?同时为什么我使用current_user.name返回的属性也是None呢,数据库里面是有id这个字段的
flask-login登录属性获取问题?
代码片段

user_obj = model_login(name = username2)

user = User(user_obj)

login_user(user,remember = True)

return jsonify({'code': 200, 'message': '登录成功', 'data': url_for('software_click.software_base')})

报错截图
flask-login登录属性获取问题?


回答:

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


回答:

self.id = user_id.id
这一步不应该是self.id = user_id嘛

以上是 flask-login登录属性获取问题? 的全部内容, 来源链接: utcz.com/p/938953.html

回到顶部