zoukankan      html  css  js  c++  java
  • DRF项目之实现用户密码加密保存

    在DRF项目的开发中,我们通过直接使用序列化器保存的用户信息时,用户的密码是被明文保存到数据库中。

    代码实现:

        def create(self, validated_data):
            '''重写create方法实现,将密码加密后保存'''
    
            # 将密码加密后保存
            user = User.objects.create_user(**validated_data)
    
            return user

    我们只需要在序列化器中,重写create方法,并将保存数据的方法由原来的create方法修改成create_user方法即可。

    案例代码:

    class UserAddSerializers(serializers.ModelSerializer):
        '''增加用户的序列化器'''
    
        class Meta:
            # 指定模型类
            model = User
    
            # 指定模型字段
            fields = ['username','password','mobile','email']
    
            # 为序列化器字段添加约束
            extra_kwargs = {
                'username': {
                    'max_length': 20,
                    'min_length': 5
                },
                'password': {
                    'max_length': 20,
                    'min_length': 8,
                    'write_only': True
                },
            }
    
        def create(self, validated_data):
            '''重写create方法实现,将密码加密后保存'''
    
            # 将密码加密后保存
            user = User.objects.create_user(**validated_data)
    
            return user
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    windows的端口映射
    windows的ics
    关于windows的右键菜单项 注册表删除
    dig的使用 openwrt
    linux环境变量相关
    Difference between 2>&-, 2>/dev/null, |&, &>/dev/null and >/dev/null 2>&1
    openwrt ipv6
    ros资料参考
    ipv6的相关参考资料
    supervisor
  • 原文地址:https://www.cnblogs.com/chao666/p/12308688.html
Copyright © 2011-2022 走看看