在flaskweb开发中用户用户注册中密码加密:
一、flask框架项目搭建的基础上扩展
二、在之前项目中的模板视图中直接引入
from werkzeug.security import generate_password_hash, check_password_hash
from exts import db
import datetime
from werkzeug.security import generate_password_hash, check_password_hash
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(100), nullable=False)
_password = db.Column(db.String(100), nullable=False)
createtime = db.Column(db.DateTime, default=datetime.datetime.now())
def __init__(self, name, password):
self.name = name
self.password = password
@property
def password(self):
return self._password
# 定义一个赋值的方法
@password.setter
def password(self, rawpwd):
self._password = generate_password_hash(rawpwd)
#定义一个验证密码的方法
def check_password(self, rawpwd):
return check_password_hash(self.password, rawpwd)
三、重新运行python manage.py db migrate
与python manage.py db upgrade
命令
四、重新注册查看数据库中密码是不是加密处理了
五、登录的时候验证密码是否正确
...省去
result = db.session.query(User).filter(User.name == name1).first()
if result and result.check_password(password1):
...省去