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...