修改,删除接口

发布时间 2024-01-09 10:43:21作者: 朱饱饱

 

 

views.py


from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
from rest_framework.views import APIView
from rest_framework.response import Response
from app01 import models
# from app01.serializer import BookModelSerializer as BookSerializer
from app01.serializer import BookModelSerializer
from app01.serializer import BookSerializer
'''5个接口
1 查询所有 Book--》get
2 查询单个 BookDetali--》get
3 新增一个 Book--》post
4 删除一个 BookDetali--》delete
5 修改一个 BookDetali--》put 向地址books/1发送put请求
'''





def put(self, request, id): # 通过id取到对象 res
= {'code': 100, 'msg': ''} try: book = models.Book.objects.get(id=id) ser = BookSerializer(instance=book, data=request.data) ser.is_valid(raise_exception=True) ser.save() res['msg'] = '修改成功' res['result'] = ser.data except Exception as e: res['code'] = 101 res['msg'] = str(e) return Response(res) def delete(self,request,id): response = {'code': 100, 'msg': '删除成功'} models.Book.objects.filter(id=id).delete() return Response(response)

 

serializer.py


# 序列化器类(序列化Book表)
# from rest_framework.serializers import Serializer
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from app01 import models

class
BookSerializer(serializers.Serializer): id = serializers.IntegerField(required=False) title = serializers.CharField(max_length=32,min_length=2) price = serializers.DecimalField(max_digits=5, decimal_places=2) publish = serializers.CharField(max_length=32) def create(self, validated_data): res=models.Book.objects.create(**validated_data) print(res) return res def update(self, book, validated_data): book.title=validated_data.get('title') book.price=validated_data.get('price') book.publish=validated_data.get('publish') book.save() return book