我有一个用于SQLAlchemy的预先存在的数据库,因此我正在使用自动映射从数据库中获取模型。向这些类添加方法的最佳方法是什么?例如,对于User类,我想添加诸如验证密码之类的方法。另外,我想为flask-login(UserMixin)方法添加方法。
最佳答案
预先Specify your classes explicitly,并按照通常的方式定义方法:
Base = automap_base()
class User(Base):
__tablename__ = 'user'
def verify_password(self, password):
...
Base.prepare(engine, reflect=True)
现在,
Base.classes.User
和User
相同,并带有其他方法。要使您的User
类flask-login兼容,请实现listed attributes and methods,或将提供的UserMixin
添加到您的User
类中。 mixin似乎只期望id
类中存在User
属性/列。