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})