DRF實現分頁功能

2021-08-22 08:45:27 字數 2342 閱讀 9746

rest framework提供了分頁的支援。

我們可以在配置檔案中設定全域性的分頁方式,如:

rest_framework =
也可通過自定義pagination類,來為檢視新增不同分頁行為。在檢視中通過pagination_clas屬性來指明。

class

largeresultssetpagination

(pagenumberpagination):

page_size = 1000

page_size_query_param = 'page_size'

max_page_size = 10000

class

bookdetailview

(retrieveapiview):

queryset = bookinfo.objects.all()

serializer_class = bookinfoserializer

pagination_class = largeresultssetpagination

注意:如果在檢視內關閉分頁功能,只需在檢視內設定

pagination_class = none

1) pagenumberpagination

get  

.org/books/?page=4

可以在子類中定義的屬性:

page_size 每頁數目

page_query_param 前端傳送的頁數關鍵字名,預設為"page"

page_size_query_param 前端傳送的每頁數目關鍵字名,預設為none

max_page_size 前端最多能設定的每頁數量

from rest_framework.pagination import pagenumberpagination

class

standardpagenumberpagination

(pagenumberpagination):

page_size_query_param = 'page_size'

max_page_size = 10

class

booklistview

(listapiview):

queryset = bookinfo.objects.all().order_by('id')

serializer_class = bookinfoserializer

pagination_class = standardpagenumberpagination

# 127.0.0.1/books/?page=1&page_size=2

2)limitoffsetpagination

get .org/books/?limit=100&offset=400
可以在子類中定義的屬性:

default_limit 預設限制,預設值與page_size設定一直

limit_query_param limit引數名,預設'limit'

offset_query_param offset引數名,預設'offset'

max_limit 最大limit限制,預設none

class

limitset

(pagination.limitoffsetpagination):

# 每頁預設幾條

default_limit = 3

# 設定傳入頁碼數引數名

page_query_param = "page"

# 設定傳入條數引數名

limit_query_param = 'limit'

# 設定傳入位置引數名

offset_query_param = 'offset'

# 最大每頁顯示條數

max_limit = none

from rest_framework.pagination import limitoffsetpagination

class

booklistview

(listapiview):

queryset = bookinfo.objects.all().order_by('id')

serializer_class = bookinfoserializer

pagination_class = limitset

DRF框架中分頁實現

全域性分頁比較簡單,直接在settings中增加如下內容即可 django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages dj...

drf 分頁 例項

from rest framework import serializers class studentserializers serializers.modelserializer class meta model students 設定關聯模型 model就是關聯模型 fields all fi...

drf 分頁元件

目錄可以達到檢視第幾頁以及每一頁顯示幾條的效果 from rest framework.pagination import pagenumberpagination 一 基本使用 url url 無效 class pager apiview def get self,request,args,kwa...