zoukankan      html  css  js  c++  java
  • DRF使用Serializer来进行序列化和反序列化操作

    1. serializer.py中的代码

      from rest_framework import serializers
      from .models import *
      
      class UserSerializers(serializers.Serializer):
          
          username = serializers.CharField(max_length=64)
          
          age = serializers.IntegerField(allow_null=True)
          
          home = serializers.CharField(max_length=64)
          
          def create(self, validated_data):
              
              return User.object.create(**validated_data)
          
          def update(self, instance, validated_data):
              # instance 数据库里的模型
              # validated_data 传进来要修改的数据
              
              instance.username = validated_data.get('username', instance.username)
              
              instance.age = validated_data.get('age', instance.age)
              
              instance.home = validated_data.get('home', instance.home)
              
              instance.save()
              return instance
      
    2. views.py中的代码

      # 用户接口
      class UserView(APIView):
          
          # 查看
          def get(self, request):
          
              users = User.objects.all()
      
              ser = UserSerializer(users, many=True)
      
              data = ser.data
      
              return Response(data)
      	# 添加
          def post(self, request):
              
              data = request.data
              
              ser = UserSerializer(data=data)
              
              if ser.is_valid():
                  
                  ser.save()
                  
                  return Response({'msg': '添加成功', 'code': 200})
              else:
                  print(ser.errors)
      	# 修改
          def put(self, request):
              
              data = request.data
              
              user = User.objects.get(id=1)
              
              ser = UserSerializer(user, data=data)
              
              if ser.is_valid():
                  
                  ser.save()
                  
                  return Response({'msg': '修改成功', 'code': 200})
              else:
                  print(ser.errors)
                  
      	# 删除
          def delete(self, request):
              
              uid = request.data.get('id')
              
              user = User.objects.filter(pk=uid).first()
              
              if user:
                  user.delete()
                  return Response({'msg': '删除成功', 'code': 200})
              else:
                  print(user.errors)
          
      
  • 相关阅读:
    HTML5和CSS3的学习视频
    webpack中bundler源码编写2
    webpack中bundler源码编写
    webpack中如何编写一个plugin
    webpack多页面打包配置
    webpack中配置eslint
    webpack解决单页面路由问题
    webpack中使用WebpackDevServer实现请求转发
    webpack中typeScript的打包配置
    rsync 同步
  • 原文地址:https://www.cnblogs.com/-tender/p/13887637.html
Copyright © 2011-2022 走看看