rest_framework分页,版本控制
# 普通分页 from rest_framework.pagination import PageNumberPagination # from rest_framework.versioning import URLPathVersioning # class Book(ViewSetMixin, APIView): #版本控制局部使用 # versioning_class = URLPathVersioning # def get_all(self, request,*args,**kwargs): # 提供给咱的解析 # url2=request.versioning_scheme.reverse('ttt',request=request) # print(url2)#获取到带有版本号的ip地址 # response = {'status': 100, 'msg': '查询成功'} # book_list = models.Book.objects.all() # # 实例化产生一个分页对象 # # 不继承来修改对象的值 # page=PageNumberPagination() # # 每页显示多少条 # page_size = 3 # # 查询的key,问号后面的key # page_query_param = 'aa' # # 指定当前页显示多少条 # page_size_query_param='size' # # 每页最多显示多少条 # max_page_size=4 # # 第一个参数:要分页的数据,第二个参数request对象,第三个参数,当前视图对象 # page_list = page.paginate_queryset(book_list, request, self) # # 再序列化的时候,用分页之后的数据 # ser = mySer.BookSerializer(instance=page_list, many=True) # # response['data'] = ser.data # # return Response(response) # # 会带着链接,和总共的条数(不建议用) # return page.get_paginated_response(ser.data) # # return Response(ser.data) 路由---------------------------------------------------------------------------------------------------- #版本控制路由 # url(r'^(?P[v1|v2|v3]+)/books/$', views.Book.as_view({'get': 'get_all'}), name='ttt'), 在setting中--------------------------------------------------------------------------------------------- REST_FRAMEWORK = { # 'DEFAULT_VERSIONING_CLASS':'rest_framework.versioning.URLPathVersioning',#版本控制全局使用 # 'VERSION_PARAM': 'version', # 'DEFAULT_VERSION': 'v1', # 'ALLOWED_VERSIONS': ['v1', 'v2'], }
本文标题:rest_framework分页,版本控制
文章出自:http://azwzsj.com/article/ipcpdg.html