ユーザーの資格情報を表すSQLAlchemyクラスを作成しています。
password
パスワードのハッシュ値を格納するフィールドが必要です。したがって、次の方法でその動作をオーバーライドしたいと思います。
割り当てられる
credentials.password = value
と、実際には値のハッシュが格納されます比較する
credentials.password == value
と、実際には値のハッシュと比較されます
SQLAlchemyドキュメントの次の部分を読みましたhttp://docs.sqlalchemy.org/en/rel_0_7/orm/mapper_config.html#using-descriptors-and-hybrids
そして、私は問題番号1を解決する方法を理解していると思います。
しかし、2番目のポイントをどのように行うかはわかりません。(SQLAlchemyを壊さずに)安全な方法でそれを行う方法はありますか?
モデルの例を次に示します。
class Credentials(Base):
__tablename__ = 'credentials'
id = Column(Integer, primary_key=True)
_password = Column('password', String)
@hybrid_property
def password(self):
return self._password
@password.setter(self):
self._password = hash(self._password)