09 分页

编辑本文章

GGGG-XXXX博客

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的参数名
View Code

  

  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
View Code

2、limitOffset分页

 给定起始位置,并指定查找多少个

3、游标分页

可对游标进行加密,且支持排序功能

 

posted @ 2019-06-25 17:34  丫丫625202  阅读(116)  评论(0编辑  收藏  举报