当前位置: 首页 > article >正文

快速入手-基于Django-rest-framework的mixins混合类(五)

1、基于上一章节去修改

创作中心-CSDN

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 


http://www.kler.cn/a/611811.html

相关文章:

  • 自然语言处理(NLP)技术的应用面有哪些
  • 如何卸载雷池 WAF
  • 通义Qwen实战(2): vllm框架部署实战
  • Python----数据分析(电影数据分析)
  • 基于springboot+vue的凉州区助农惠农服务平台
  • 在 Ubuntu 上安装 Docker 的完整指南
  • 多网络选择路由(windows环境)
  • 5G NR PRACH格式
  • 青少年编程与数学 02-012 SQLite 数据库简介 01课题、数据库概要
  • scikit-learn 学习路线与知识结构全解析
  • 蓝桥杯高频考点——搜索(含C++源码)
  • 原型验证后客户推翻原有需求,如何止损
  • VMware Workstation 不支持在此主机上使用虚拟化性能计数器
  • 【AI学习】人工神经网络
  • Tomcat 与 WebLogic:企业级 Web 应用服务器的全面比较
  • AIP-192 文档
  • Manus的开源替代者之一:OpenManus通用AI智能体框架解析及产品试用
  • JBDev - Theos下一代越狱开发工具
  • 【C++ 继承】—— 青花分水、和而不同,继承中的“明明德”与“止于至善”
  • 神经网络基础(NN)