zoukankan      html  css  js  c++  java
  • django的分页

    #1.第一种分页方式是在函数中使用
    from api.utils.serializsers.pager import PagerSerialiser
    from rest_framework.response import Response
    from rest_framework.pagination import PageNumberPagination
    
    
    class Pager1View(APIView):
        def get(self,request,*args,**kwargs):
            #获取所有数据
            roles = models.Role.objects.all()
            #创建分页对象
            pg = PageNumberPagination()
            #获取分页的数据
            page_roles = pg.paginate_queryset(queryset=roles,request=request,view=self)
            #对数据进行序列化
            ser = PagerSerialiser(instance=page_roles,many=True)
            return Response(ser.data)
    #2.第二种分页方式
    #自定义分页类
    class MyPageNumberPagination(PageNumberPagination):
        #每页显示多少个
        page_size = 3
        #默认每页显示3个,可以通过传入pager1/?page=2&size=4,改变默认每页显示的个数
        page_size_query_param = "size"
        #最大页数不超过10
        max_page_size = 10
        #获取页码数的
        page_query_param = "page"
    #3.第三种分页方式
    #自定义分页类2
    class MyLimitOffsetPagination(LimitOffsetPagination):
        #默认显示的个数
        default_limit = 2
        #当前的位置
        offset_query_param = "offset"
        #通过limit改变默认显示的个数
        limit_query_param = "limit"
        #一页最多显示的个数
        max_limit = 10
    #4.第四种分页方式
    #自定义分页类 (加密分页)
    class MyCursorPagination(CursorPagination):
        cursor_query_param = "cursor"
        page_size = 2     #每页显示2个数据
        ordering = 'id'   #排序
        page_size_query_param = None
        max_page_size = None

    2.在类中使用

    class PatientModelViewSet(ModelViewSet):
        queryset = models.Patient.objects.filter(is_delete=False)
        serializer_class = Serializer.PatientModelSerializer
       #指向自定义分页的类
        pagination_class = MyCursorPagination



    借鉴https://www.cnblogs.com/derek1184405959/p/8727595.html
  • 相关阅读:
    k8s 使用 Init Container 确保依赖的服务已经启动
    asp.net core 从 3.0 到 3.1
    Github原生CI/CD,初尝Github Actions
    [nginx]编译安装及安全优化
    [nginx]盗链和防盗链场景模拟实现
    [nginx]location语法
    [nginx]站点目录及文件访问控制
    [svc]nginx限制客户端上传附件的大小
    [sql]mysql指引(整理中...)-对db的分类
    [sql]mysql参数(配置)手册
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/12345209.html
Copyright © 2011-2022 走看看