写贴上自己写的demo
from werkzeug.security import generate_password_hash, check_password_hash
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
password = db.Column(db.String(128))
rold_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
def __init__(self, username=None):
self.username = username
self.password_hash = ''
# 只读明文密码
@property
def password(self):
raise AttributeError('password is not a readable attribute')
# 计算密码散列值并把得到的结果赋值给password_hash字段
# 写入密码,同时计算hash值,保存到模型中
@password.setter
def password(self, password):
self.password_hash = generate_password_hash(password)
# 接受一个参数(即密码),将其传给check_password_hash()函数,和存储在User模型中的密码散列值进行比对。