REST framework提供了分頁的支援
一、全域性配置(不建議使用)
在配置檔案中設定全域性的分頁方式:
REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 10 # 每頁資料量 }
二、區域性配置
在不同的檢視中可以透過pagination_clas屬性來指定不同的分頁器
定義一個繼承PageNumberPagination的型別,在子類中透過屬性定義分頁器的資料:
-
page_size 每頁預設的資料條數
-
page_query_param 前端傳送的頁數關鍵字名,預設為"page"
-
page_size_query_param 前端傳送的每頁數目關鍵字名,預設為None
-
from rest_framework.pagination import PageNumberPagination class UserInfoPagination(PageNumberPagination): # 預設每頁資料量 page_size = 10 page_query_param = 'page' page_size_query_param = 'size' # 每頁的資料量的最大值 max_page_size = 100
class UserView(ModelViewSet): # 指定模型類查詢集 queryset = UserInfo.objects.all() # 指定序列化器類 serializer_class = UserInfoSerializer # 指定分頁器類 pagination_class = UserInfoPagination
pagination_class = None
三、分頁器型別
-
http://127.0.0.1:8000/students/?page=4
-
page_size 每頁數目 page_query_param 前端傳送的頁數關鍵字名,預設為"page" page_size_query_param 前端傳送的每頁數目關鍵字名,預設為None max_page_size 前端最多能設定的每頁數量
-
http://127.0.0.1:8000/students/?limit=100&offset=400
default_limit 預設限制,預設值與PAGE_SIZE設定一直 limit_query_param limit引數名,預設'limit' offset_query_param offset引數名,預設'offset' max_limit 最大limit限制,預設None