Flask SQLAlchemy:我可以在';它是一个声明性的_基类?
我有用户类:Flask SQLAlchemy:我可以在';它是一个声明性的_基类?,flask,sqlalchemy,flask-sqlalchemy,werkzeug,Flask,Sqlalchemy,Flask Sqlalchemy,Werkzeug,我有用户类: engine = create_engine('mysql://root:@localhost/academic', convert_unicode=True, echo=False) Base = declarative_base() Base.metadata.reflect(engine) class User(Base): __table__ = Base.metadata.tables['user'] @property def passwor
engine = create_engine('mysql://root:@localhost/academic', convert_unicode=True, echo=False)
Base = declarative_base()
Base.metadata.reflect(engine)
class User(Base):
__table__ = Base.metadata.tables['user']
@property
def password(self):
raise AttributeError('password is not a readable attribute')
@password.setter
def password(self, password):
self.password = generate_password_hash(password)
def verify_password(self, password):
return check_password_hash(self.password, password)
没有密码方法,代码可以正常工作,但一旦我取消对它们的注释,页面将继续加载,服务器将没有响应。您在
@password.setter
中设置了self.password
,导致无限递归。获取一个私有字段\u密码
,并使其对应于数据写入和读取的位置:
类用户(基本):
__table_uz=Base.metadata.tables['user']
_密码=列(“密码”,字符串(256),可空=假)
@财产
def密码(自我):
raise AttributeError('密码不是可读属性')
@密码设置器
def密码(self,password):
self.\u password=生成\u密码\u散列(密码)
def验证_密码(自我、密码):
返回检查\u密码\u散列(self.\u密码,密码)