美文网首页
Flask-Admin密文保存用户密码

Flask-Admin密文保存用户密码

作者: 嘿嘿_小于同学 | 来源:发表于2017-05-25 15:51 被阅读485次

    1、用户模型

    class User(db.Model, UserMixin):
        __tablename__ = 'users'
    
        id = db.Column(db.Integer(), primary_key=True)
        username = db.Column(db.String(), unique=True)  
        password = db.Column(db.String(), default='123456')  
        name = db.Column(db.String)  
        grade = db.Column(db.String)  
    
        role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
        role = db.relationship('Role', back_populates='user')
    
        # pythonic使用@property将方法变成属性
        def set_password(self, password):
            self.password = generate_password_hash(password)
    
        def check_password(self, value):
            return check_password_hash(self.password, value)
    
        def __repr__(self):
            return self.username
    
        # 回调函数
        @staticmethod
        @login_manager.user_loader
        def load_user(user_id):
            return User.query.get(int(user_id))
    

    2、flask-admin添加用户记录

    record
    添加一个用户记录发现,密码并没有被加密!!
    3、使用hash加密密码
    解决方法:在我们自定义的视图中是实现函数on_model_change
    class UserView(ModelView):
        page_size = 15
        
        def on_model_change(self, form, User, is_created=False):
            # 调用用户模型中定义的set方法
            User.set_password(form.password.data)
    

    再添加一个用户信息


    发现用户密码已经被加密了!

    相关文章

      网友评论

          本文标题:Flask-Admin密文保存用户密码

          本文链接:https://www.haomeiwen.com/subject/xqlzxxtx.html