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
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    Nginx模块fastcgi_cache的几个注意点
    Nginx的fastcgi_cache
    Nginx Location 语法,与简单配置[转]
    nginx location 匹配顺序
    Amoeba基本配置
    LVS的DR模式配置
    Keepalived安装及初步使用
    HAProxy安装及初步使用
    lvs nginx HAProxy优缺点
    Redis安装及初步使用
  • 原文地址:https://www.cnblogs.com/chao666/p/12308688.html
Copyright © 2011-2022 走看看