views.py视图
from django.shortcuts import render
from rest_framework.views import APIView
from .models import BookInfo
from .serializers import BookInfoSerializer, BookDetailSerializer
from rest_framework.response import Response
from rest_framework import status
# Create your views here.
class BookListAPIView(APIView): # 指定查询集
'''查询全部数据'''
def get(self,request):
books = BookInfo.objects.all()
# 指定序列列化器
serializer = BookInfoSerializer(books,many=True)
return Response(serializer.data)
class BookDetailAPIView(APIView):
'''视图详情'''
# 查
def get(self,request,pk):
try:
book = BookInfo.objects.get(id=pk)
except BookInfo.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = BookDetailSerializer(instance=book)
return Response(serializer.data)
# 改
def put(self,request,pk):
try:
book = BookInfo.objects.get(id=pk)
except BookInfo.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer_data = BookInfoSerializer(instance=book,data=request.data)
serializer_data.is_valid(raise_exception=True)
serializer_data.save()
return Response(serializer_data.data)
# 删
def delete(self,request,pk):
try:
book = BookInfo.objects.get(id=pk)
except BookInfo.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
book.is_deleted = True
book.save()
return Response(status=status.HTTP_204_NO_CONTENT)