zoukankan      html  css  js  c++  java
  • DRF框架之mixins

    一、ListModelMixin

    • 提供list(request, *args, **kwargs)方法
    • 获取已存在的列表数据(获取多条记录)
    • 获取成功,则返回200 OK

    1.引入方式

    from rest_framework.mixins import ListModelMixin

    2.源码对比

    我们可以发现,两处的代码基本一致,因此我们直接拿到使用来优化本地代码

    3.使用方法

    a.视图类继承ListModelMixin

    b.get方法中直接return self.list(request, *args, **kwargs)

        def get(self, request, *args, **kwargs):
            return self.list(request, *args, **kwargs)

    二、CreateModelMixin

    • 提供create(request, *args, **kwargs)方法
    • 创建新的模型实例(创建新的记录)
    • 创建成功,返回201 Created
    • 如果请求参数有误,返回400 Bad Request

    1.引入方式

    from rest_framework.mixins import CreateModelMixin

    2.源码对比

    依然也是基本一致

    3.使用方法

    a.视图类继承CreateModelMixin

    b.post方法中直接return self.create(request, *args, **kwargs)

        def post(self, request, *args, **kwargs):
            return self.create(request, *args, **kwargs)

    三、RetrieveModelMixin

    • 提供retrieve(request, *args, **kwargs)方法
    • 获取已存在的详情数据(一条记录)
    • 获取成功,返回200 OK
    • 如果不存在,则返回404 Not Found

    1.引入方式

    from rest_framework.mixins import RetrieveModelMixin

    2.源码对比

    3.使用方法

    a.视图类继承RetrieveModelMixin

    b.get方法中直接return self.retrieve(request, *args, **kwargs)

        def get(self, request, *args, **kwargs):
            return self.retrieve(request, *args, **kwargs)

    四、UpdateModelMixin

    • 提供update(request, *args, **kwargs)方法,用于全更新
    • 提供partail_update(request, *args, **kwargs)方法,用户部分更新,支持PATCH方法
    • 更新已存在的模型实例(更新一条记录)
    • 更新成功,返回200 OK
    • 如果请求参数有误,返回400 Bad Request
    • 如果不存在,返回404 Not Found

    1.引入方式

    from rest_framework.mixins import UpdateModelMixin

    2.源码对比

    注:这里有一点不一样,源码中有一个‘partial’,这个表示可以进行部分更新,因此update方法不仅支持全更新,也可以支持部分更新

    3.使用方法

    a.视图类继承UpdateModelMixin

    b.put方法中直接return self.retrieve(request, *args, **kwargs)

        def put(self, request, *args, **kwargs):
            return self.update(request, *args, **kwargs)

    五、DestroyModelMixin

    • 提供destroy(request, *args, **kwargs)方法
    • 删除一条已存在的数据(删除一条记录)
    • 删除成功,返回204 No Content
    • 如果不存在,返回404 Not Found

    1.引入方式

    from rest_framework.mixins import DestroyModelMixin

    2.源码对比

    3.使用方法

    a.视图类继承DestroyModelMixin

    b.delete方法中直接return self.retrieve(request, *args, **kwargs)

        def delete(self, request, *args, **kwargs):
            return self.destroy(request, *args, **kwargs)
  • 相关阅读:
    JavaScript Date对象和函数 (一)
    Css3 文字渐变整理(一)
    Asp.net Core CacheHelper 通用缓存帮助类
    .net core中使用GB2312编码的问题
    苹果手机微信浏览器select标签选择完成之后页面不会自动回到原位
    .Net Core NOPI操作word(二) 表格操作
    .Net Core NOPI操作word(一)
    .NetCore中EFCore的使用整理(三)-关联表操作
    windos server2012安装.net core 2.2问题
    C# 最简单的使程序单进程运行的方法
  • 原文地址:https://www.cnblogs.com/xiaogongjin/p/13339535.html
Copyright © 2011-2022 走看看