DRF之视图组件】的更多相关文章

目录 DRF的视图组件 两大视图类 六大视图工具类 九大工具视图类 两大视图集基类 DRF的视图组件 DRF的视图组件大概分以下几类 两大视图类 APIView.GenericAPIView from rest_framework.views import APIView from rest_framework.generics import GenericAPIView ''' APIView继承Django的View 1) View:将请求方式与视图类的同名方法建立映射,完成请求响应 2)…
不断的优化我们写的程序,是每个程序员必备的技能和职业素养,也是帮助我们成长的非常重要的手段. 使用serializer进行put接口设计 根据规范,PUT接口用来定义用户对数据修改的逻辑,也就是update,它的url是这样的, 127.0.0.1/books/1/,请求方式是PUT,1代表的是具体的数据,使用户动态传递的,所以我们的url应该是这样的: re_path(r'books/(\d+)/$', views.BookFilterView.as_view()), 此时我们应该重新定义一个…
1.为什么要进行封装 1.1 在处理表的时候,如果有几十张表都需要增删改查查时,如果每一张表都写这些方法,会让代码显得冗余,所以需要将这些方法进行封装,然后不同的表都去继承这写方法.(这是思路) 1.2 分析需要自定义的内容 1.2.1 获取到的对象,根据不同的表结构,获取不同的对象内容,比如book_obj , publiser_obj, authors_obj 等等.   所以 这些   quser_set = None ,到时候根据不同的表去继承. 1.2.2 序列化器也不同,所以需要se…
一.频率组件 1.使用DRF简单频率控制实现对用户进行访问频率控制 1)导入模块,定义频率类并继承SimpleRateThrottle # 导入模块 from rest_framework.throttling import SimpleRateThrottle # 定义频率类并继承SimpleRateThrottle class RateThrottle(SimpleRateThrottle): rate = '5/m' # 指定访问频率,5/m表示 每分钟5次 def get_cache_k…
视图组件 1.基本视图 url(r'^publish/$', views.PublishView.as_view()), url(r'^publish/(?P<pk>\d+)/$', views.PublishDetailView.as_view()), class PublishSerializers(serializers.ModelSerializer): class Meta: model=models.Publish fields='__all__' class PublishVie…
视图组件  -- 第一次封装   -- GenericAPIView(APIView):    queryset = None    serializer_class = None    def get_queryset(self):     return self.queryset.all()    def get_serializer(self, *args, **kwargs):     return self.serializer_class(*args, **kwargs)   --…
基于mixins视图类 from rest_framework import mixins # 创建视图 class CreateModelMixin(object) def create(self, request, *args, **kwargs): # 查看所有视图 class ListModelMixin(object) def list(self, request, *args, **kwargs): # 查看单个视图 class RetrieveModelMixin(object)…
DRF视图组件: CVB模式继承----五层 from django.views import View # Django的View from rest_framework.views import APIView # drf的APIView继承View from rest_framework.generics import GenericAPIView, CreateAPIView # drf的GenericAPIView继承APIView # 以下CBV需要在路由的as_view()中添加对…
目录 DRF 视图组件 视图组件大纲 两个视图基本类 五个扩展类 九个子类视图 视图集 常用视图集父类 魔法类 一览表 DRF中视图的"七十二变" 第一层:基于APIview的五个接口 第一层五个接口demo 第二层:基于GenericAPIView的五个接口 常用类属性: 第二层五个接口demo 第三层:基于GenericAPIView+五个视图扩展类写 第三层五个接口demo GenericAPIView速写五个接口demo 第四层:GenericAPIView+九个视图子类写五个…
一.序列化组件 基于上篇随笔的表结构,通过序列化组件的ModelSerializer设计如下三个接口: GET 127.0.0.1:8000/books/{id} # 获取一条数据,返回值:{} PUT 127.0.0.1:8000/books/{id} # 修改数据,返回值:{} DELETE 127.0.0.1:8000/books/{id} # 删除数据,返回空 urls.py文件: from django.urls import path, re_path from serializer…