Django-rest-framework 接口实现 分页:(Pagination) 解析器(Parser) 渲染器(renderer)
分页:(Pagination)
rest_framework 中已经定义好了 3 种 分页模式
from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination, CursorPagination
- PageNumberPagination
- 例如:http://127.0.0.1:8000/api/article/?page=2&size=1
- 通过页码数进行分页
- LimitOffsetPagination
- 例如:http://127.0.0.1:8000/api/article/?offset=2&limit=2
- 通过起始 结束 分页
- 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',
),
Django-rest-framework 接口实现 分页:(Pagination) 解析器(Parser) 渲染器(renderer)的更多相关文章
- Django REST framework - 解析器和渲染器
目录 Django REST framework - 解析器和渲染器 解析器 Django中的数据解析 DRF中的解析器 渲染器 Django REST framework - 解析器和渲染器 解析器 ...
- Restful API学习Day5 - DRF之限制 分页 解析器和渲染器
参考文档: Django REST framework基础:认证.权限.限制 Django REST framework基础:分页 Django REST framework基础:解析器和渲染器 一. ...
- DRF 版本、认证、权限、限制、解析器和渲染器
目录 一.DRF之版本控制 为什么要有版本控制? DRF提供的版本控制方案 版本的使用 全局配置 局部配置(使用较少) 二.DRF之认证 内置的认证 步骤 三.DRF之权限 1.自定义一个权限类 2. ...
- Django-Rest-Framework的解析器和渲染器
Django-Rest-Framework的解析器和渲染器 restful framework 解析器 解析器的作用就是服务端接收客户端传来的数据,把数据解析成自己想要的数据类型的过程 本质就是对请 ...
- Django Rest Framework源码剖析(五)-----解析器
一.简介 解析器顾名思义就是对请求体进行解析.为什么要有解析器?原因很简单,当后台和前端进行交互的时候数据类型不一定都是表单数据或者json,当然也有其他类型的数据格式,比如xml,所以需要解析这类数 ...
- Django REST framework基础:解析器和渲染器
解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentTy ...
- Django REST framework解析器和渲染器
解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentTy ...
- Django REST framework的解析器与渲染器
解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentTy ...
- 07 Django REST Framework 解析器与渲染器
01-解析器 REST 框架包括一些内置的Parser类,允许你接受各种媒体类型的请求.还支持定义自己的自定义解析器,这使你可以灵活地设计API接受的媒体类型. 注意: 开发客户端应用程序时应该始终记 ...
随机推荐
- MySQL添加列、删除列,创建主键等常用操作总结
一. 列常用操作 ① 添加新的一列test_column,并将其作为主键,FIRST将其放在表中第一行,auto_increement是自动增长 alter table test_table add ...
- [android] 开启新的activity获取他的返回值
应用场景:打开一个新的activity,在这个activity上获取数据,返回给打开它的界面 短信发送时,可以直接选择系统联系人 界面布局是一个线性布局,里面右侧选择联系人在EditText的右上,因 ...
- 我是如何解决java.security.cert.CertPathValidatorException异常的
目录 问题来了 问题分析 解决问题 重新安装服务器端证书 日志带来曙光 刨根到底 总结 附录 tomcat的SSL配置 服务器端证书配置 Keytool命令常用参数 问题来了 昨天,我还在我的工位上愉 ...
- regression and anova
regression一般是统计学的回归回归,研究一个随机变量Y对另一个(X)或一组(X1,X2,-,Xk)变量的相依关系的统计分析方法.研究一 个或多个随机变量Y1 ,Y2 ,-,Yi与另一些变量X1 ...
- Codeforces389D(SummerTrainingDay01-J)
D. Fox and Minimal path time limit per test:1 second memory limit per test:256 megabytes input:stand ...
- 聊聊找AI算法岗工作
https://blog.csdn.net/weixin_42137700/article/details/81628028 首先,本文不是为了增加大家的焦虑感,而是站在一名学生的角度聊聊找AI算法岗 ...
- 深入理解Java虚拟机02--Java内存区域与内存溢出异常
一.概述 我们在进行 Java 开发的时候,很少关心 Java 的内存分配等等,因为这些活都让 JVM 给我们做了.不仅自动给我们分配内存,还有自动的回收无需再占用的内存空间,以腾出内存供其他人使用. ...
- robot framework笔记(一):环境配置(基于python3)+在pycharm中编写及运行robot脚本
(一)使用pip安装robotframework框架和seleniumlibrary库 pip install --upgrade robotframework pip install --upgra ...
- 如何在Ruby中编写微服务?
[编者按]本文作者为 Pierpaolo Frasa,文章通过详细的案例,介绍了在Ruby中编写微服务时所需注意的方方面面.系国内 ITOM 管理平台 OneAPM 编译呈现. 最近,大家都认为应当采 ...
- MySQL优化技巧【持续更新】
前言 应用程序或web网页有时慢的像蜗牛爬似的,可能是网络原因,可能是系统架构原因,还有可能是数据库原因.那么如何提高数据库SQL语句执行速度呢?下面是积累的一些优化技巧,望对君有用. 正文 1.比较 ...