Flask

Flask Web开发密码加盐

2018-06-23  本文已影响0人  梦醒家先生

一、flask框架项目搭建的基础上扩展

MVC框架模式:

二、 在项目中的模板视图中直接引入

from datetime import datetime
from werkzeug.security import generate_password_hash, check_password_hash
from . import db

class User(BaseModel, db.Model):
    """用户"""
    __tablename__ = "info_user"

    id = db.Column(db.Integer, primary_key=True)  # 用户编号
    nick_name = db.Column(db.String(32), unique=True, nullable=False)  # 用户昵称
    password_hash = db.Column(db.String(128), nullable=False)  # 加密的密码
    mobile = db.Column(db.String(11), unique=True, nullable=False)  # 手机号
    avatar_url = db.Column(db.String(256))  # 用户头像路径
    last_login = db.Column(db.DateTime, default=datetime.now)  # 最后一次登录时间
    is_admin = db.Column(db.Boolean, default=False)
    signature = db.Column(db.String(512))  # 用户签名
    gender = db.Column(  # 订单的状态
        db.Enum(
            "MAN",  # 男
            "WOMAN"  # 女
        ),
        default="MAN")
    # property:将装饰器的方法提升为类属性--->默认为getter方法--->解耦
    @property
    def password(self):
        raise AttributeError("当前属性不可读")

    # 定义一个赋值的方法
    @password.setter
    def password(self, value):
        self.password_hash = generate_password_hash(value)

    # 定义一个验证密码的方法
    def check_password(self, password):
        return check_password_hash(self.password_hash, password)
函数的定义(源码).png
method$salt$hash
上一篇 下一篇

猜你喜欢

热点阅读