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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章