zoukankan      html  css  js  c++  java
  • day83 mixins 一个封装了的视图工具类、

    一、mixins视图工具类:

       APIVIew中多个视图类的get、post、put、delete、patch五大接口基本相同,

       rest_framwork 做了一个封装工具mixins, 该工具只是帮我调了一个函数,本身自己并没有实现自己的逻辑,而且也没有所需的数据,

       故mixins必须继承一个view类,或者继承view的子类如generics下的各种view类【GenericAPIView。。。

       【from rest_framework.mixins import

                     CreateModelMixin、【增】

                     ListModelMixin、 【群查】

                       DestroyModelMixin、【删】

                       RetrieveModelMixin、【单查】

                      UpdateModelMixin、【单改】

                      】

          1. createModelMixin中有一个create方法,create方法中有一个serializer, 然后直接调保存了,

           实际上 createModelMixin并没有自己的create方法,缺 get_serializer(data=request.data)【序列化】方法

          2.ListModelMixin中调用了过滤、分页方法,缺 get_serializer(.. many=True)【系列化】、get_queryset()【获取数据】方法

          3. DestroyModelMixin,缺get_object()【获取单个】

          4.RetrieveModelMixin, 缺get_object()【】获取单个、get_serializer(instance)

          5.UpdateModelMixin,缺 get_object()、get_serializer(instance, data=request.data, partial=partial),、

           该类提供了两个修改方法:perform_update、partial_update,但具体的都没有自己实现逻辑

    二、视图类【from rest_framework import  generics】

      generics.py中有一个类  class GenericAPIView(views.APIView),这个类中提供了mixins工具类上述所缺的参数,

      当然最终还要在我自己的views 类中依据它的需要提供两个参数: queryset、serializer_class

    三、GenericAPIView提供了mixins类中的具体数据

  • 相关阅读:
    使用c#生成Identicon图片
    C#实现对文件目录的实时监控
    .Net Core的一些个人总结
    天天写业务代码,如何成为「技术大牛」?
    两款工作流JBPM和CCBPM的对比
    MVC5+EasyUI+EF6+Linq通用权限系统出炉--登录(2)
    MVC5+EasyUI+EF6+Linq通用权限系统出炉(1)
    博客园,久违了
    VS2010 代码行数统计以及代码复制汉字出现乱码
    关于TerrainExplorer的一些资源网址设置方法(备忘)
  • 原文地址:https://www.cnblogs.com/qingqinxu/p/11388670.html
Copyright © 2011-2022 走看看