码迷,mamicode.com
首页 > 其他好文 > 详细

分页器和版本控制

时间:2018-12-23 16:54:34      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:off   分页器   参数   mixin   顺序   hid   frame   src   param   

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)
View Code

第二种:偏移分页

第三种:加密分页(查询速度快)

分页器和版本控制

标签:off   分页器   参数   mixin   顺序   hid   frame   src   param   

原文地址:https://www.cnblogs.com/xufengnian/p/10164470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!