分页:(Pagination)

rest_framework 中已经定义好了 3 种 分页模式

from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination, CursorPagination

当有特殊的配置需要代替默认的配置时,我们就自己写个类

  • 继承要使用的分页模式

在单独的视图中定义分页

一些配置:

  • PageNumberPagination

    from rest_framework.pagination import PageNumberPagination
    class MyPagination(PageNumberPagination):
    ''' 修改一些默认参数 '''
    page_size = 1 # 每页显示多少条
    page_size_query_param = 'size' # 每页显示多少条的参数key
    page_query_param = 'page' # URL中页码的参数
    max_page_size = None # 最大页码数限制
  • LimitOffsetPagination

    class MyLimitOffset(LimitOffsetPagination):
    # 默认参数
    default_limit = 1
    limit_query_param = 'limit'
    offset_query_param = 'offset'
    max_limit = 999
  • CursorPagination

    # 加密分页
    class MyCursorPagination(CursorPagination):
    cursor_query_param = 'cursor'
    page_size = 1
    ordering = '-id' # 重写要排序的字段

注意:

  • queryset切片之后不能 order_by()

配置:

全局配置:

REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
# 每页显示 的条数 不指定的话 会出现 warning(警告)信息
'PAGE_SIZE': 100
}

局部配置

  pagination_class = PageNumberPagination

解析器(Parser) 和 渲染器(renderer)

配置: 一般不需要配置 使用自己默认的就行

  # 解析器
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser'
), # 渲染器
# 你要页面 我就给你页面
# 你要JSON格式的数据 我就给你JSON格式的数据
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
# 'rest_framework.renderers.BrowsableAPIRenderer',
),

最新文章

  1. 伟大的GCD和NSOperationQueue
  2. Linux下多路径multipath配置
  3. Sql Server 与CLR集成
  4. 安装sql server 2008 management studio时,提示升级VS2008 到 SP1
  5. 读书笔记——Java IO
  6. kettle表输入条件参数设置
  7. jerasure 2.0译文
  8. flask 操作mysql的两种方式-sql操作
  9. Feign报错Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client
  10. ubuntu14.04拼音输入法问题的解决方法
  11. Kestrel.Transport.Sockets分析与使用
  12. HTTP协议是无状态的
  13. Jenkins解析日志(log-parser-plugin)
  14. 【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架
  15. RAND_MAX
  16. MongoDB(课时4 数据增加)
  17. JavaWeb基础—Servlet
  18. c#实现统计代码运行时间
  19. Visual Studio Code Angular4 配置环境
  20. 深入理解 flex 布局以及计算_Flexbox, Layout

热门文章

  1. c#的WebService和调用
  2. Java 学习笔记 泛型
  3. 4.6 explain 之 rows
  4. Java8 Optional类
  5. 汇编语言--微机CPU的指令系统(五)(条件设置字节指令)
  6. undefined 与 xx is not defined 的区别
  7. canvas-a12ellipse.html
  8. ie6常见的兼容性问题
  9. int,int32_t,int64_t
  10. web前端(13)—— 了解JavaScript,JavaScript的引入方式