基本使用:
-page=LimitOffsetPagination实例化产生对象
-返回值=page.paginate_queryset(ret,request,self):ret是要分页的所有数据,
-再序列化,序列化该返回值
1
2
3
四个参数:
#从标杆位置往后取几个,默认取3个,我可以指定
page.default_limit=3
#每次取得条数
page.limit_query_param=‘limit‘
#标杆值,现在偏移到哪个位置,如果offset=6 表示当前在第6条位置上,往后取
page.offset_query_param=‘offset‘
#最大取10条
page.max_limit=10
1
2
3
4
5
6
7
8
from rest_framework.pagination import LimitOffsetPagination
class PublishView(APIView):
    def get(self, request, *args, **kwargs):
        ret = models.Publish.objects.all()
        # 实例化产生一个偏移分页对象
        page = LimitOffsetPagination()
        #四个参数:
        #从标杆位置往后取几个,默认取3个,我可以指定
        page.default_limit=3
        #每次取得条数
        page.limit_query_param=‘limit‘
        #标杆值,现在偏移到哪个位置,如果offset=6 表示当前在第6条位置上,往后取
        page.offset_query_param=‘offset‘
        #最大取10条
        page.max_limit=10
        ret_page = page.paginate_queryset(ret, request, self)
        # 序列化
        pub_ser = serializer.PublishSerializers(ret_page, many=True)
        # 去setting中配置每页显示多少条
        return page.get_paginated_response(pub_ser.data)
        # return Response(pub_ser.data)
--------------------- 
原文:https://www.cnblogs.com/hyhy904/p/11284653.html