當要查詢的數據列表視圖會返回很多實例,所以我們想要給這些結果分頁,
分頁後允許API客戶端訪問每個單頁。 我們可以用分頁改變默認的列表風格,我們只要稍微修改setting.py文件,添加下面設置:
REST_FRAMEWORK = {
# 分頁
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', # LimitOffsetPagination 分頁風格
'PAGE_SIZE': 3, # 每頁多少條記錄
}
自定義分頁
# 分頁自定義
from rest_framework.pagination import PageNumberPagination
class ArticlePagination(PageNumberPagination):
page_size = 4 # 表示每頁的默認顯示數量
page_size_query_param = 'page_size' # 表示url中每頁數量參數
page_query_param = 'p' # 表示url中的頁碼參數
max_page_size = 100 # 表示每頁最大顯示數量,做限制使用,避免突然大量的查詢數據,數據庫崩潰
class ArticleListleView(generics.ListCreateAPIView):
queryset = Article.objects.all() # 查詢結果集
serializer_class = ArticleSerializer # 序列化類
pagination_class = ArticlePagination # 自定義分頁會覆蓋settings全局配置的