1、基于上一章节去修改
创作中心-****
2、只需要修改视图类views.py
from django.shortcuts import render, HttpResponse
from rest_framework.response import Response
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import (
ListModelMixin,
CreateModelMixin,
RetrieveModelMixin,
UpdateModelMixin,
DestroyModelMixin,
)
from .models import *
from api.serializer import *
# Create your views here.
class Linkapi(GenericAPIView, ListModelMixin, CreateModelMixin):
queryset = Link.objects.all()
serializer_class = LinkSerializer
# 查看所有字段
def get(self, request):
# xuliehua = self.get_serializer(instance=self.get_queryset(), many=True)
# return Response(xuliehua.data)
return self.list(request)
# 新增数据
def post(self, request):
# xuliehua = self.get_serializer(data=request.data)
# if xuliehua.is_valid():
# xuliehua.save()
# return Response(xuliehua.data)
# else:
# return Response(xuliehua.errors)
return self.create(request)
# 指定一条的请求 删除 查一条、修改一条
class Linkapidetail(
GenericAPIView, RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin
):
queryset = Link.objects.all()
serializer_class = LinkSerializer
# 查询单条记录
def get(self, request, pk):
# xuliehua = self.get_serializer(instance=self.get_object(), many=False)
# return Response(xuliehua.data)
return self.retrieve(request, pk)
# 更新单条数据
def put(self, request, pk):
# xuliehua = self.get_serializer(instance=self.get_object(), data=request.data)
# if xuliehua.is_valid():
# xuliehua.save()
# return Response(xuliehua.data)
# else:
# return Response(xuliehua.errors)
return self.update(request, pk)
# 更新单条数据中的部分字段 ,和put方法里边内容几乎一样,除了partial=True
def patch(self, request, pk):
# xuliehua = self.get_serializer(
# instance=self.get_object(), data=request.data, partial=True
# )
# if xuliehua.is_valid():
# xuliehua.save()
# return Response(xuliehua.data)
# else:
# return Response(xuliehua.errors)
return self.update(request, pk, partial=True)
def delete(self, request, pk):
# self.get_object().delete()
# return Response("删除成功")
return self.destroy(request, pk)
3、用apifox测试正常
4、 代码下载
链接: https://pan.baidu.com/s/16zZ1HwGxckGsHyAd-gvs3g?pwd=wpx4 提取码: wpx4