DRF使用Serializer来进行序列化和反序列化操作

DRF使用Serializer来进行序列化和反序列化操作

在serlizers中添加

from rest_framework import serializers
from .models import *
class UserSer(serializers.Serializer):
    name=serializers.CharField(max_length=64)
    age=serializers.CharField(allow_blank=True)
    home=serializers.CharField(max_length=64)
    def  create(self, validated_data):
        return User.objects.create(**validated_data)
    def update(self, instance, validated_data):
        #instance 你的数据库里的模型类
        #validated_data 传进来要修改的数据
        instance.name=validated_data.get("name",instance.name)
        instance.age=validated_data.get("age",instance.age)
        instance.home=validated_data.get("home",instance.home)
        instance.save()
        return instance
    # def validate_name(self,attrs):
    #     if attrs !='peter':
    #         raise serializers.ValidationError('不是peter本人')
    #     return attrs
    def validate(self,attrs):
        name=attrs["name"]
        if name !="peter":
            raise serializers.ValidationError('不是peter本人')
        return attrs

在app01views中添加

from django.shortcuts import render,HttpResponse
from django.views import View
from rest_framework.views import APIView
from rest_framework.response import Response
from django.http.response import HttpResponse,JsonResponse
# Create your views here.
# def hellow(request):
#      return HttpResponse('hellow word app01')
from app02.models import User
from .serializer import *

class test2(APIView):
     def get(self,request):
          data=request.query_params
          return Response(data)
     def post(self,request):
          data=request.data
          return Response(data)
class test1(View):
     def post(self,request):
          data=request.POST.get('name')
          return HttpResponse(data)
     def get(self,request):
          data = request.GET.get('name')
          return HttpResponse(data)

class User1(View):
     def post(self,request):
        user=User.objects.all()
        list=[]
        for i in user:
            data={
                'name':i.name,
                'age':i.age,
                'home':i.home
                }
            list.append(data)
        return JsonResponse({"data":list})

class UserView(APIView):
    def get(self,request):
        users=User.objects.all()
        ser=UserSer(users,many=True)
        data=ser.data
        return Response(data)
    def post(self,request):
        data=request.data
        ser=UserSer(data=data)
        ser.is_valid()
        print(ser.errors)
        # ser.save()
        return Response({"code":200})
    def put(self,request):
        data=request.data
        id=request.data.get("id")
        user=User.objects.get(id=id)
        Ser=UserSer(user,data=data)
        Ser.is_valid()
        Ser.save()
        return Response({"code":200})

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值