鍍金池/ 問答/Python  Android/ flask用戶密碼 使用hash加密驗(yàn)證問題

flask用戶密碼 使用hash加密驗(yàn)證問題

使用werkzeug.security做用戶密碼的加密和驗(yàn)證,其中有一個(gè)方法

@password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

我理解是在為user.password賦值時(shí)會調(diào)用該方法def password(self, password)
于是我這樣使用:

user = User.query.get(data.get('reset'))
user.password_hash = 'password'

但是并沒有調(diào)用方法def password(self, password),請問是為什么?

回答
編輯回答
純妹

@property、@x.setter、@x.deleter實(shí)現(xiàn)了同名x屬性的讀取、賦值和刪除。
三個(gè)裝飾器裝飾同名方法x,可以搭配使用。

設(shè)置的屬性應(yīng)是password 而非password_hash,直接設(shè)置后者是不會調(diào)用相關(guān)hash的

2017年8月17日 07:25
編輯回答
選擇

是這樣,
應(yīng)該使用user.password = 'password'
@Yujiaao 感謝。

2017年10月23日 20:58