一  分页器--准备

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 之分页器的更多相关文章

  1. Django 之 rest_framework 分页器使用

    Django rest_framework 之分页器使用以及其源码分析 三种分页方式: 常规分页 -->PageNumberPagination 偏移分页 -->LimitOffsetPa ...

  2. Rest_framework之版本控制、响应器和分页器

    一.访问频率补充 频率: 自定义: 1 定义一个类MyThrottles allow_request(频率限制的逻辑) ==>这两个函数都是派生出来的,继承的类里面封装的. wait(返回一个数 ...

  3. rest_framework之三种分页器使用方法

      from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination,CursorPagination ...

  4. drf框架之分页器的用法

    1. 分页器分为:简单分页器与偏移分页器和加密分页器 2.实现一个简单的分页器的用法: # 简单分页 # 第一步,导入分页类 # from rest_framework.pagination impo ...

  5. $Django importlib与dir知识,手写配置文件, 配置查找顺序 drf分页器&drf版本控制

    1  importlib与dir知识 # importlib简介动态导入字符串模块 # 常规导入 from ss.aa import b from ss import a print(b,type(b ...

  6. AI-响应式、分页器

    响应式 如果在setting配置下列,当只有BrowsableAPIRenderer时,只会返回浏览器页面:当配置成JSONRenderer,会返回json数据 REST_FRAMEWORK={ 'D ...

  7. 一.rest-framework之版本控制 二、Django缓存 三、跨域问题 四、drf分页器 五、响应器 六、url控制器

    一.rest-framework之版本控制 1.作用 用于版本的控制 2.内置的版本控制 from rest_framework.versioning import QueryParameterVer ...

  8. REST framwork之分页器,路由器,响应器

    一 REST framwork分页器: from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination ...

  9. drf 认证、权限、限流、过滤、排序、分页器

    认证Authentication 准备工作:(需要结合权限用) 1. 需要使用到登陆功能,所以我们使用django内置admin站点并创建一个管理员. python manage.py creates ...

随机推荐

  1. gpio 灯的对应关系

    1 点灯验证通过:   GPIO160     TX1-LED GPIO161     RX1-LED   GPIO163     TX2-LED GPIO164     RX2-LED   GPIO ...

  2. ad7888 linux driver

    /* ADCCONVERT.c : Generate ADC signals from SPI ports, as the A/D control signals. Author:  Aaron Fu ...

  3. 启动BusyBox内建的FTP Server

    启动BusyBox内建的FTP Server   要启动BusyBox内建的FTP Server,我们需要先孰悉tcpsvd与ftpd这两个命令. tcpsvd可以建立TCP socket,并将它bi ...

  4. linux 驱动cc1101

    cc110x.h /*  * File:   cc110x.h * Author: elinux * * Created on 2015年4月7日, 上午10:32 */ #ifndef CC110X ...

  5. NodeJS与Javascript时代

    如果你一直在关注互联网的相关技术,你应该会有这样一种感觉,web技术正在发生着变革,虽然我们不愿相信,但一个事实已经越来越清晰的摆在了眼前:LAMP组合的时代将要成为历史,在web诞生的二十年间,它影 ...

  6. wifi的web 认证。

    wifi的web 认证.wifidog+authpuppy+php 或者Wiwiz Auth API

  7. 整理混乱JS代码。

    一. 拷贝到MyEclipse的js文件 内然后 Ctrl+Shift+F 自动格式化代码. 二.百度搜索 :格式化js.

  8. 上传Docker镜像到阿里云

      1.配置阿里云的镜像加速器:https://cr.console.aliyun.com/#/accelerator 2.命令行登录到阿里云的doker仓库,--username为阿里云的用户名 d ...

  9. winform 递归循环阻止机构

    private void GetTree() { DataTable dt = new DataTable(); var sql = @" select OUID,ParentOUID,OU ...

  10. Java多线程实现自然同步(内含演示案例)

    1.准备一个生产者类: public class Producer extends Thread{ private String name; private Market mkt; static in ...