當(dāng)要查詢的數(shù)據(jù)列表視圖會(huì)返回很多實(shí)例费薄,所以我們想要給這些結(jié)果分頁,
分頁后允許API客戶端訪問每個(gè)單頁节预。 我們可以用分頁改變默認(rèn)的列表風(fēng)格惊科,我們只要稍微修改setting.py文件,添加下面設(shè)置:
REST_FRAMEWORK = {
# 分頁
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', # LimitOffsetPagination 分頁風(fēng)格
'PAGE_SIZE': 3, # 每頁多少條記錄
}
自定義分頁
# 分頁自定義
from rest_framework.pagination import PageNumberPagination
class ArticlePagination(PageNumberPagination):
page_size = 4 # 表示每頁的默認(rèn)顯示數(shù)量
page_size_query_param = 'page_size' # 表示url中每頁數(shù)量參數(shù)
page_query_param = 'p' # 表示url中的頁碼參數(shù)
max_page_size = 100 # 表示每頁最大顯示數(shù)量煤裙,做限制使用掩完,避免突然大量的查詢數(shù)據(jù),數(shù)據(jù)庫崩潰
class ArticleListleView(generics.ListCreateAPIView):
queryset = Article.objects.all() # 查詢結(jié)果集
serializer_class = ArticleSerializer # 序列化類
pagination_class = ArticlePagination # 自定義分頁會(huì)覆蓋settings全局配置的
效果如下:
其中更多參數(shù)設(shè)置硼砰,自行參閱相關(guān)資料且蓬。