分页器和版本控制
Posted xufengnian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页器和版本控制相关的知识,希望对你有一定的参考价值。
1.分页器
三种分页:
第一种:类似于原来django中的分页
from rest_framework.pagination import PageNumberPagination from rest_framework.pagination import LimitOffsetPagination from rest_framework.pagination import CursorPagination from rest_framework.pagination import Response # class MyPageNumberPagination(PageNumberPagination): # #这里继承PageNumberPagination这个类,然后可以重写方法 # #这里要知道查找配置的顺序,首先,先从自己写的类里进行找,然后一层层往上面的类找 # #然后再从自己创建的项目settings里找(比如ff95.settings),然后再去rest_framework的配置文件里找 # #每页显示多少条 # page_size = 3 # #查询的key,问号后面的key # page_query_param = ‘aa‘ # #指定当前页显示多少条 # page_size_query_param = ‘size‘ # #每页最多显示多少条,后面接的是数字 # max_page_size = 4 from rest_framework.viewsets import ViewSetMixin class Books(ViewSetMixin,APIView): def get_all(self,request): response={‘status‘:100,‘msg‘:‘查询成功‘} #不order_by一下,总是报警告,很烦 book_list=models.Book.objects.all().order_by(‘nid‘) #实例化产生一个分页对象 page=PageNumberPagination() #如果不想像上面一样,再写一个类进行继承,直接自定义属性 page.page_size=2 page.page_query_param=‘aa‘ page.page_size_query_param = ‘size‘ page.max_page_size = 4 #第一个参数是要分页的数据,第二个参数request对象,第三个参数当前视图对象 page_list=page.paginate_queryset(book_list,request,self) #再序列化的时候,用分页之后的数据 ser=MySer.BookSerializer(page_list,many=True) response[‘data‘]=ser.data #会带着链接,和总共的条数(不建议使用) # return page.get_paginated_response(ser.data) # return JsonResponse(response,safe=False) return Response(ser.data)
第二种:偏移分页
第三种:加密分页(查询速度快)
以上是关于分页器和版本控制的主要内容,如果未能解决你的问题,请参考以下文章