rest_framework学习(六)分页器

分页器

如果使用rest_framework的分页器,视图类需要继承rest_framework.generics.GenericAPIView或者它的子类。

使用分页器需要在视图类中配置pagination_class,然后调用self.paginate_queryset(queryset)就能得到分页后的数据集合。

    def paginate_queryset(self, queryset):
        """
        Return a single page of results, or `None` if pagination is disabled.
        """
        if self.paginator is None:
            return None
        return self.paginator.paginate_queryset(queryset, self.request, view=self)

rest_framework自带的分页器

PageNumberPagination

类似django自带的分页器

    # 每页显示多少条
    page_size = 3
    http://127.0.0.1:8001/?aa=3 -> 访问第三页,默认为page
    # 查询的key,问号后面的key
    page_query_param = 'aa'
    http://127.0.0.1:8001/?aa=3&size=5 ->访问第三页,每页五个数据
    # 指定当前页显示多少条
    page_size_query_param='size'
    # 每页最多显示多少条,如果超过,有多少显示多少
    max_page_size=4

LimitOffsetPagination

偏移分页

#每页显示的条数
default_limit = api_settings.PAGE_SIZE
#标杆值
offset_query_param = 'offset'
#往后偏移多少
http://127.0.0.1:8001/?offset=3&limit=5 ->从第四条数据开始,取五条
limit_query_param = 'limit'
#每页显示最大的条数                
max_limit = None
****要取的条数,如果超过了,还剩多少,就显示多少

CursorPagination

加密分页(速度最快)

#按nid排序
page.ordering = 'nid'
#查询的key值
cursor_query_param = 'cursor' 
#每页显示多少条
page_size = api_settings.PAGE_SIZE

 

posted @ 2019-07-29 19:27  Wuliwawa  阅读(159)  评论(0编辑  收藏  举报