博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django-rest-framework 接口实现 分页:(Pagination) 解析器(Parser) 渲染器(renderer)
阅读量:5748 次
发布时间:2019-06-18

本文共 1682 字,大约阅读时间需要 5 分钟。

分页:(Pagination)

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

from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination, CursorPagination
  • PageNumberPagination
    • 例如:
    • 通过页码数进行分页
  • LimitOffsetPagination
    • 例如:
    • 通过起始 结束 分页
  • CursorPagination
    • 加密的分页 让别人看不到具体的页码,页码都是随机字符串

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

  • 继承要使用的分页模式

在单独的视图中定义分页

一些配置:

  • PageNumberPagination

    from rest_framework.pagination import PageNumberPaginationclass 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',    ),

转载于:https://www.cnblogs.com/zhang-zi-yi/p/10447390.html

你可能感兴趣的文章
Python2.x与3.x版本区别
查看>>
ubuntu使用apt-get默认安装ElasticSearch里JAVA环境丢失的问题
查看>>
最少硬币找零问题
查看>>
spring boot 整合mybatis分页插件pagehelper5.1
查看>>
看《曾国藩》从纳小妾到见容闳一节笔记二三
查看>>
Web安全之CSRF攻击
查看>>
正则表达式简明教程(持续更新中)
查看>>
孤单的平安夜
查看>>
linux之路——find命令学习笔记
查看>>
如何用100行Python代码做出魔性声控游戏“八分音符酱”
查看>>
[转] Instagram 在 PyCon 2017 的演讲摘要
查看>>
Git打补丁的命令
查看>>
eclipse远程调试Tomcat方法
查看>>
Lenovo Y1 Openwrt配置
查看>>
python发送邮件
查看>>
XWIKI的使用手册
查看>>
sqoop1 导出与hue oozie踩坑
查看>>
基于springCloud的分布式架构体系
查看>>
Vsphere主机Exsi ssl指纹获取方法
查看>>
Linux 常用命令
查看>>