zoukankan      html  css  js  c++  java
  • rest_framework之三种分页器使用方法

     
    from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination,CursorPagination
    
    
    PageNumberPagination # 常用分页,查出所有,取部分
    LimitOffsetPagination # 偏移分页,只能向前或者向后基于当前位置查
    CursorPagination # 游标分页,一次只能上一页下一页,但效率极高


    class
    PublishView(APIView): versioning_class = URLPathVersioning parser_classes=[JSONParser,] def get(self,request,*args,**kwargs): # 第一种 #批量添加 # ll=[] # for i in range(100): # ll.append(models.Publish(name='%s出版社'%i,city='%s城市'%i)) # # models.Publish.objects.bulk_create(ll) #第一种方法,普通分页 #查询出所有数据 ret=models.Publish.objects.all() #实例化产生一个普通分页对象 page=PageNumberPagination() #每页显示多少条 page.page_size=3 #查询指定查询哪一页的key值 page.page_query_param='xxx' #前端控制每页显示多少条的查询key值比如size=9,表示一页显示9条 page.page_size_query_param='size' #控制每页最大显示多少,size如果传100,最多也是显示10 page.max_page_size=10 ret_page=page.paginate_queryset(ret,request,self) #序列化 pub_ser=serializer.PublishSerializers(ret_page,many=True) #去setting中配置每页显示多少条 return Response(pub_ser.data) def get(self, request, *args, **kwargs): # 第二种 ret = models.Publish.objects.all() # 实例化产生一个偏移分页对象 page = LimitOffsetPagination() #四个参数: #从标杆位置往后取几个,默认取3个,我可以指定 page.default_limit=3 #每次取得条数 page.limit_query_param='limit' #标杆值,现在偏移到哪个位置,如果offset=6 表示当前在第6条位置上,往后取 page.offset_query_param='offset' #最大取10条 page.max_limit=10 ret_page = page.paginate_queryset(ret, request, self) # 序列化 pub_ser = serializer.PublishSerializers(ret_page, many=True) # 去setting中配置每页显示多少条 return page.get_paginated_response(pub_ser.data) # return Response(pub_ser.data) def get(self, request, *args, **kwargs): # 第三种 ret = models.Publish.objects.all() # 实例化产生一个偏移分页对象 page = CursorPagination() #三个参数: #每页显示的大小 page.page_size=3 #查询的key值 page.cursor_query_param='cursor' # 按什么排序 page.ordering='id' ret_page = page.paginate_queryset(ret, request, self) # 序列化 pub_ser = serializer.PublishSerializers(ret_page, many=True) # 去setting中配置每页显示多少条 return page.get_paginated_response(pub_ser.data) # return Response(pub_ser.data)
  • 相关阅读:
    【Xshell】基本使用-连接远程服务器 | 传输文件
    【Shell】在windows10环境下安装xshell-绿色破解版(解压后,直接使用)
    【windows10】由于找不到msvcr100.dll,无法继续执行代码
    英语单词正音
    汉字正音
    怎样快速阅读一本书
    “做教练”之好声音训练
    “做教练”之硬笔书法
    2017-2018-1学期《程序设计与数据结构》教学进程
    Java Collections 源码分析
  • 原文地址:https://www.cnblogs.com/dongxixi/p/11152284.html
Copyright © 2011-2022 走看看