09 分页
1、pageNumber分页
1、自己写分页配置类
from rest_framework.pagination import PageNumberPagination class MyPagination(PageNumberPagination): page_size = 2#默认显示多少个对象 max_page_size = 2# 比如前段传入size=4,标示我要一次性取3个数据,不好意思,最多只能给max_page_size个 #http://api.example.org/accounts/?page=4&page_size=100 page_query_param = "page"#url中标示页码的参数名 page_size_query_param = "size"#url中表示size的参数名
2、在视图函数中导入并使用自定义分页类
from rest_framework.views import APIView from utils.pagination import MyPagination from DRFServer.models import Book from DRFServer.serializers import BookSerializer # Create your views here. class BootViewSet(APIView): def get(self,request): queryset=Book.objects.all() # 1、实例化分页器对象 page_obj=MyPagination() # 2、调用分页方法对queryser进行分页 page_queryset=page_obj.paginate_queryset(queryset,request,view=self) # 3、把分页好的数据序列化返回 ser_obj = BookSerializer(page_queryset, many=True) # 4、带上上一页和下一页的响应连接 ret=page_obj.get_paginated_response(ser_obj.data) return ret
2、limitOffset分页
给定起始位置,并指定查找多少个
3、游标分页
可对游标进行加密,且支持排序功能