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)
          
      
  • 相关阅读:
    山东省网络安全技能大赛 部分writeup
    网络安全实验室--SQL注入关
    PHP命令执行与防范
    练习平台,学习网站
    实验吧 简单的SQL注入1
    网络安全相关书籍
    Redtiger SQL注入练习(一)
    Redtiger SQL注入练习(二)
    南邮。。。综合题
    实验吧:让我进去
  • 原文地址:https://www.cnblogs.com/-tender/p/13887637.html
Copyright © 2011-2022 走看看