2016-09-09 6 views
1

私はSQLAlchemyで使用している既存のデータベースを持っていますので、データベースからモデルを取得するためにautomapを使用しています。これらのクラスにメソッドを追加する最も良い方法は何ですか?たとえば、Userクラスでは、パスワードの検証などのメソッドを追加したいと考えています。また、フラスコログイン(UserMixin)メソッドのメソッドを追加したいと思います。SQLAlchemyのautomap - オートマチックモデルへのメソッドの追加

答えて

1

Specify your classes explicitly事前に、そして通常どおりにメソッドを定義します。

Base = automap_base() 

class User(Base): 
    __tablename__ = 'user' 

    def verify_password(self, password): 
     ... 

Base.prepare(engine, reflect=True) 

Base.classes.UserUserはあなたの追加メソッドで、同じです。 Userクラスフラスコログイン互換にするには、listed attributes and methodsを実装するか、またはUserMixinUserクラスに追加してください。 mixinはUserクラスのid属性/カラムの存在を予期しているようです。

+0

このクラスでは、automapが属性など他のものを埋め込むので、メソッドを実装するだけでよいですか? – hatooku

+0

ほとんどの場合、automapが列を提供します。 –

+0

恐ろしく、ありがとう! – hatooku

関連する問題