适当减少手机使用,有助于视力保护... 新的一年祝您:身体健康,阖家欢乐!~~

flask-admin 集成 flask-security 用户模型,创建和编辑时对密码进行加密

浏览量:417 作者:admin 类别:: 学习笔记 更新时间:2023-03-25 10:35:59
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

 

用户模型新增方法

def set_password(self, password):
    self.password = hash_password(password)

 

 

在用户视图modelview中使用on_model_change方法

class MyUserView(MyModelView):
    # 用户管理
    def on_model_change(self, form, model, is_created):
        model.set_password(form.password.data)
        # 使用flask-security 的加密方法 hash_password 对明文明码进行加密
        return model

 

致此解决了

 

同样的方法,咱们可以处理,更新和创建 时间

# 自动设置created_at updated_at 字段
def on_model_change(self, form, model, is_created):
    try:
        # print(hasattr(model,'created_at'),hasattr(model,'updated_at'))
        if hasattr(model,'created_at') and hasattr(form, 'created_at') and not form.created_at.data:
            # 判断存在属性 且表单有此项并为空,咱们给它赋值当前时间,同样处理updated_at字段
            model.created_at = datetime.now()
        if hasattr(model,'updated_at') and hasattr(form, 'updated_at') and not form.updated_at.data:
            model.updated_at = datetime.now()
    except Exception as e:
        print(e)
关于博主
北京南城网络及弱电【张工】为您提供:
校园网、楼宇、村镇、园区,光纤网络覆盖,无线覆盖 华为|H3c|锐捷|爱快|panabit等品牌,路由、交换机、AC、AP 无源光网络(PON)设备,布署、调试、维运,等服务...
应急/临时光纤熔接...[藤仓22S]
博文为学习python所写:内容摘自网络、学习笔记、记事备忘。
QQ:872876353,欢迎交流学习、加Q注明来意。

诗文鉴赏

《满江红》· 岳飞
落星侵晓没,
残月半山低。
怒发冲冠,
凭栏处、潇潇雨歇。
抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。
莫等闲、白了少年头,
空悲切。
源于生活-记录日常
The site based on python 3 with flask...