现在数据获取到了,提示也有了,我们需要把注册的数据写入到数据库,这一步很简单,直接使用之前提到过的方法,但是我们不能直接把明文密码写入到数据库中,那样做是十分不安全的,我们需要将其加密之后再写进去,具体是用到werkzeug.security中的generate_password_hash这个函数,将字符串变成hash值。
我们可以在User模型中重写__init__函数(或__setattr__),当传入password自动调用generate_password_hash进行加密,如:
class Users(db.Model):
__tablename__ = 'users_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(32), nullable=False)
password = db.Column(db.String(100), nullable=False)
register_time = db.Column(db.DateTime, nullable=False, default=datetime.now())
avatar_path = db.Column(db.String(256), nullable=False, default='images/doraemon.jpg')
def __init__(self, *args, **kwargs):
self.username = kwargs.get('username