DRF之分頁元件

2021-10-10 08:36:20 字數 2340 閱讀 6575

rest framework提供了分頁的支援。

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

rest_framework =

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

class

largeresultssetpagination

(pagenumberpagination)

: page_size =

1000

#每頁顯示多少條

#127.0.0.1:8001/students/?page=5&page_size=10

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
可以在子類中定義的屬性:

# 宣告分頁的配置類

from rest_framework.pagination import pagenumberpagination

class

standardpagenumberpagination

(pagenumberpagination)

:# 預設每一頁顯示的資料量

page_size =

2# 允許客戶端通過get引數來控制每一頁的資料量

page_size_query_param =

"size"

max_page_size =

10#客戶端通過size指定獲取資料的條數時,最大不能超過多少

# 自定義頁碼的引數名

page_query_param =

"p"class

studentapiview

(listapiview)

: queryset = student.objects.

all(

) serializer_class = studentmodelserializer

pagination_class = standardpagenumberpagination

# 127.0.0.1/four/students/?p=1&size=5

2)limitoffsetpagination

get   #從下標為400的記錄開始,取100條記錄
可以在子類中定義的屬性:

from rest_framework.pagination import limitoffsetpagination

class

standardlimitoffsetpagination

(limitoffsetpagination)

:# 預設每一頁查詢的資料量,類似上面的page_size

default_limit =

2 limit_query_param =

"size"

#預設是limit

offset_query_param =

"start"

#預設是offset

class

studentapiview

(listapiview)

: queryset = student.objects.

all(

) serializer_class = studentmodelserializer

# 呼叫頁碼分頁類

# pagination_class = standardpagenumberpagination

# 呼叫查詢偏移分頁類

pagination_class = standardlimitoffsetpagination

drf 分頁元件

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

Django元件之 分頁器

django自帶分頁器 paginator 用起來非常方便。怕自己寫的出bug,可以使用現成的 批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all...

django之分頁器元件

1,配置路由,在模板層建立表模型 2,在檢視層圍標新增資料 def index request 先造成100本書,放到列表中 ll for i in range 100 批量插入,兩個引數,第乙個是物件列表,第二個是一次插入的資料量,不填,預設一次全插入 models.book.objects.bu...