一  分页器--准备

1.1  基本参数

# 普通分页
from rest_framework.pagination import PageNumberPagination
# 偏移分页
from rest_framework.pagination import LimitOffsetPagination
# 加密分页
from rest_framework.pagination import CursorPagination class MyPageNumberPagination(PageNumberPagination):
# 每页显示多少条
page_size = 3
# 查询的key,问号后面的key
page_query_param = 'aa'
# 指定当前页显示多少条
page_size_query_param='size'
# 每页最多显示多少条
max_page_size=4

1.2  普通分页

class Book(ViewSetMixin, APIView):
def get_all(self, request):
response = {'status': 100, 'msg': '查询成功'}
book_list = models.Book.objects.all()
# 实例化产生一个分页对象
# 不继承来修改对象的值
page=PageNumberPagination()
page.page_size=2
page.page_query_param='bb'
# page = MyPageNumberPagination()
# 第一个参数:要分页的数据,第二个参数request对象,第三个参数,当前视图对象
page_list = page.paginate_queryset(book_list, request, self)
# 再序列化的时候,用分页之后的数据
ser = mySer.BookSerializer(instance=page_list, many=True)
# response['data'] = ser.data
# return Response(response)
# 会带着链接,和总共的条数(不建议用)
return page.get_paginated_response(ser.data)
# return Response(ser.data)

1.3  偏移分页

# 偏移分页
from rest_framework.pagination import LimitOffsetPagination
class Book(ViewSetMixin, APIView):
def get_all(self, request):
response = {'status': 100, 'msg': '查询成功'}
book_list = models.Book.objects.all()
# 实例化产生一个偏移分页对象
page=LimitOffsetPagination()
page.default_limit=3
page.max_limit=5 page_list = page.paginate_queryset(book_list, request, self)
ser = mySer.BookSerializer(instance=page_list, many=True)
return Response(ser.data)

1.4  加密分页

from rest_framework.pagination import CursorPagination

class Book(ViewSetMixin, APIView):
def get_all(self, request):
response = {'status': 100, 'msg': '查询成功'}
book_list = models.Book.objects.all()
# 实例化产生一个加密分页对象
page = CursorPagination()
page.ordering = 'nid' page_list = page.paginate_queryset(book_list, request, self)
ser = mySer.BookSerializer(instance=page_list, many=True)
return page.get_paginated_response(ser.data)

二  settings

REST_FRAMEWORK = {
# 每页显示两条
'PAGE_SIZE':2
}

三  路由

url(r'^books/$', views.Book.as_view()),

最新文章

  1. 配置iDempiere源码开发环境
  2. Basic motion detection and tracking with Python and OpenCV
  3. PostgreSQL的AnynonArray的例子
  4. SCALA编程实例
  5. Jquery 获取checkbox的checked问题
  6. jQuery中$.get()、$.post()和$.ajax()
  7. codeforces #261 C题 Pashmak and Buses(瞎搞)
  8. C语言中字符串如何转换为二进制、八进制、十进制、十六进制
  9. C#与lua相互调用
  10. hdu1003 Max Sum---最大子段和+记录开始结束点
  11. [SDOI 2011]染色
  12. 【笔记】Python基础一 :变量,控制结构,运算符及数据类型之数字,字符串,列表,元组,字典
  13. 安装Docker和配置加速器(二)
  14. python处理数据pandas视频资料
  15. SpringBoot 之 普通类获取Spring容器中的bean
  16. 【转】Android打印机--没有设备驱动sdk,自己实现USB打印功能
  17. 《高级Web应用程序设计》疑难杂症(201709011)
  18. 修改 CentOS 中的 repo
  19. Javascript 定时器的使用陷阱 (setInterval)
  20. Css3 实现关键帧动画

热门文章

  1. 【转载】PHP 常用的header头部定义汇总
  2. js实现div的置底
  3. Asp.net回调技术Callback学习
  4. json转datatable(正则表达式的方法)
  5. 用iis虚拟目录和windows共享目录上传文件到远程
  6. Gradle学习系列
  7. HttpClient使用学习
  8. WPF进阶之接口(2):IDisposable,ICollectionView
  9. Hadoop1.2.1 HDFS原理
  10. 使用 Apache Tiles 3 构建页面布局