DRF使用Serializer来进行序列化和反序列化操作
在serlizers中添加
# -*- coding: utf-8 -*- 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})




浙公网安备 33010602011771号