Pythonの初心者であるため、一貫性のない結果が得られる理由がよくわかりません。ユーザーを登録すると、テーブルのパスワードがハッシュバージョンになります。ユーザーが自分のパスワードを更新すると、テーブル内のパスワードはハッシュ化されていないバージョンになります。明らかに、私はハッシュバージョンが欲しいです。私は何が間違っているのですか?(それが重要な場合は、SQLAlchemyとmysqlを使用しています。)
私は次のものを持っています:
def hash_password(password):
blah, blah, blah # hash my password here
return hashed_password
class User(Base):
__tablename__ = 'mytable'
email = Column('email')
_password = Column('password')
def _get_password(self):
return self._password
def _set_password(self, password):
self._password = hash_password(password)
password = property(_get_password, _set_password)
password = synonym('_password', descriptor=password)
def __init__(self, password="", email=""):
self.email = email
self.password = password
@classmethod
def register(cls, email, password):
return DBSession.add(User(email=email,password=password)) # this correctly hashes the password
@classmethod
def update(cls, email, password):
return DBSession.query(cls).filter(cls.email == email).update({'password': password}) #password ends up being the unhashed password