rest_framework 之分页器
一 分页器--准备
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()),
rest_framework 之分页器的更多相关文章
- Django 之 rest_framework 分页器使用
Django rest_framework 之分页器使用以及其源码分析 三种分页方式: 常规分页 -->PageNumberPagination 偏移分页 -->LimitOffsetPa ...
- Rest_framework之版本控制、响应器和分页器
一.访问频率补充 频率: 自定义: 1 定义一个类MyThrottles allow_request(频率限制的逻辑) ==>这两个函数都是派生出来的,继承的类里面封装的. wait(返回一个数 ...
- rest_framework之三种分页器使用方法
from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination,CursorPagination ...
- drf框架之分页器的用法
1. 分页器分为:简单分页器与偏移分页器和加密分页器 2.实现一个简单的分页器的用法: # 简单分页 # 第一步,导入分页类 # from rest_framework.pagination impo ...
- $Django importlib与dir知识,手写配置文件, 配置查找顺序 drf分页器&drf版本控制
1 importlib与dir知识 # importlib简介动态导入字符串模块 # 常规导入 from ss.aa import b from ss import a print(b,type(b ...
- AI-响应式、分页器
响应式 如果在setting配置下列,当只有BrowsableAPIRenderer时,只会返回浏览器页面:当配置成JSONRenderer,会返回json数据 REST_FRAMEWORK={ 'D ...
- 一.rest-framework之版本控制 二、Django缓存 三、跨域问题 四、drf分页器 五、响应器 六、url控制器
一.rest-framework之版本控制 1.作用 用于版本的控制 2.内置的版本控制 from rest_framework.versioning import QueryParameterVer ...
- REST framwork之分页器,路由器,响应器
一 REST framwork分页器: from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination ...
- drf 认证、权限、限流、过滤、排序、分页器
认证Authentication 准备工作:(需要结合权限用) 1. 需要使用到登陆功能,所以我们使用django内置admin站点并创建一个管理员. python manage.py creates ...
随机推荐
- 基于js白色简洁样式计算器
今天给大家分享一款白色简洁样式计算器JS代码是一款精美简洁计算器JS代码插件网页特效,软件应用,后台应用JS计算器插件代码免费下载.适用浏览器:360.FireFox.Chrome.Safari.Op ...
- The Tao Of Programming翻译
The Tao Of Programming里面有许多道家思想,我也喜欢道家学说, 萌生了用文言文翻译的想法,不足之处还请方家指正. 翻译后的文档放在gitcafe上了,欢迎大家fork修正.
- Farey Sequence(欧拉函数)
题意:给出式子F F中分子分母互质,且分子小于分母 例: F2 = {1/2} F3 = {1/3, 1/2, 2/3} F4 = {1/4, 1/3, 1/2, 2/3, 3/4} F5 = {1/ ...
- elasticsearch安装与使用(1)-- centos7 elasticsearch的两种简单安装方法
转自:http://www.cnblogs.com/miao-zp/p/6003160.html 简单修改 前言 elasticsearch(下面称为ES)是一个基于Lucene的搜索服务器(By 百 ...
- Linux快速定位并且杀掉占用端口的进程
1.定位 lsof -i:8811(端口号) 2.杀掉进程 kill -9 63924
- make: *** [sapi/cli/php] Error 1 解决办法
make: *** [sapi/cli/php] Error 1 一:考虑过make clean,问题依然 二:(采取此方法后出现启动apache报错:/usr/local/apache2/modul ...
- 我的vim 自动实例括号函数
不废话,直接上代码: """"""""""""""" ...
- http常见的5个错误
1. HTTP 500错误(内部服务器错误)对对HTTP 500错误的定义已经充分证明了这是一个最常见的HTTP错误. 一般来说,HTTP 500 错误就是web服务器发生内部错误时返回的信息. 例如 ...
- 数据库存入数据后id保持不变,或者直接报错
数据库存入数据后id保持不变,且添加的数据一直在进行覆盖 或者直接报错 数据库存入数据后id保持不变,且添加的数据一直在进行覆盖 原因是: 之前注释掉了loadimage();在该函数中含有建立新的记 ...
- shrink-to-fit(自适应宽度)
自适应宽度是指当未明白设定容器的宽度(或外边距设为auto)时,在特定的情况下容器的宽度会依据情况自行设定.而设定的结果往往并非我们想要的. W3C规范中描写叙述了几种shrink-to-fit的情况 ...