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接受的媒体类型. 注意: 开发客户端应用程序时应该始终记 ...
随机推荐
- 解码 id_token
简介 id_token是一个特殊的token,在Microsoft Graph的认证和授权过程中颁发,它包含了已认证用户的一些信息.本文将介绍如何通过实例理解id_token,并且演示了如何解码. 准 ...
- 三个线程T1,T2,T3.保证顺序执行的三种方法
经常看见面试题:有三个线程T1,T2,T3,有什么方法可以确保它们按顺序执行.今天手写测试了一下,下面贴出目前想到的3种实现方式 说明:这里在线程中我都用到了sleep方法,目的是更容易发现问题.之前 ...
- Netty实战九之单元测试
ChannelHandler是Netty应用程序的关键元素,所以彻底地测试他们应该是你的开发过程的一个标准部分.最佳实践要求你的测试不仅要能够证明你的实现是正确的,而且还要能够很容易地隔离那些因修改代 ...
- css重写checkbox样式
一.前言 默认的checkbox长这样: <p> <span><input type="checkbox" /></span> &l ...
- git参考, 小结
git官网: https://git-scm.com 菜鸟教程: http://www.runoob.com/git/git-tutorial.html 廖雪峰: https://www.liaoxu ...
- angularJs - cynthia娆墨旧染-响应式文章发布系统
(0)功能 a.添加新文章 b.修改已发布文章 c.搜索已经发布的文章 d.demo链接: http://cynthiawupore.github.io/angularJS (1)界面 a.文章列 ...
- 用js实现超链接导航菜单点击切换选中时的状态
项目中使用到点解导航切换不同的颜色,如果只是li选项卡还好办,这次用到的超链接选项卡,因为a链接每次点击都会刷新,所以浏览器记不住点击的状态,也没法切换点击状态,因为项目中有好多地方要用到,在网上找了 ...
- js替换字符串中特殊字符
var reg=/\\|\/|\?|\?|\*|\"|\“|\”|\'|\‘|\’|\<|\>|\{|\}|\[|\]|\[|\]|\:|\:|\.|\^|\$|\!|\~|\` ...
- CSS 定位与Z-index
position: static Z-index 固定是0 position: absolute/relative/fixed Z-index 有效 在层叠显示上,所有static定位元素看作 ...
- WPF窗体程序入口 自定义窗体启动页面
一张图体现一切: