drf框架之分页器的用法
1. 分页器分为:简单分页器与偏移分页器和加密分页器
2.实现一个简单的分页器的用法:
# 简单分页
# 第一步,导入分页类
# from rest_framework.pagination import PageNumberPagination
# class MyPageNumberPagination(PageNumberPagination):
# page_size=4
#
# class BooksView(APIView):
# def get(self, request):
# response = CommonResponse()
# book_list = models.Book.objects.all()
#
# # 第二步:实力化产生一个分页类对象,不需要传参数
# page_pagination = PageNumberPagination()
# #*****重点,4个参数
# page_pagination.page_size=4
# page_pagination.page_query_param='xx'
# page_pagination.page_size_query_param='max'
# # page_pagination.max_page_size=7
#
# # 第一个参数是要分页的queryset对象,第二个参数是request对象
# ret = page_pagination.paginate_queryset(book_list, request, self)
# #第三步,再序列化的时候用ret对象
# book_ser = BookSerializer(instance=ret, many=True)
# response.msg = '查询成功'
# response.data = book_ser.data
# # return Response(response.get_dic)
# return page_pagination.get_paginated_response(book_ser.data)
简单分页器的实现
3. 加密分页器的实现:
#CursorPagination 分页
# from rest_framework.pagination import CursorPagination
# class BooksView(APIView):
# def get(self, request):
# response = CommonResponse()
# book_list = models.Book.objects.all()
# page_pagination = CursorPagination()
# #重点的参数
# page_pagination.ordering='nid'
# # page_pagination.page_size=3
#
#
# ret = page_pagination.paginate_queryset(book_list, request, self)
# book_ser = BookSerializer(instance=ret, many=True)
# response.msg = '查询成功'
# response.data = book_ser.data
# # return Response(response.get_dic)
# return page_pagination.get_paginated_response(book_ser.data)
加密分页器
4. settings做相应的配置
# 所有drf的配置,都放在这个字典中 REST_FRAMEWORK={
#第四步,配置每页显示的条数
#每页显示3条
'PAGE_SIZE':3 }
settings加载
5. 分页器案例分析:
分页器
1 简单分页(查看第n页,每页显示n条)
-使用方法
-1 导入PageNumberPagination类
-2 实例化产生一个对象
-page_pagination = PageNumberPagination()
-3 需要配置四个参数:page_size,page_query_param,page_size_query_param,max_page_size
-page_size必须指定:在setting中指定或者直接赋值
-4 调用下面的方法,返回ret数据
ret = page_pagination.paginate_queryset(book_list, request, self)
-5 再序列化,就是序列化返回的数据,也就是ret -类中需要掌握的几个属性
-page_size:控制每页显示条数
-page_query_param:控制查询第几页的查询参数,
-比如page_query_param='xx'
-http://127.0.0.1:8000/books/?xx=2 表示查询第二页的数据
-page_size_query_param:控制每页最大显示的条数
-比如page_pagination.page_size_query_param='max'
-http://127.0.0.1:8000/books/?xx=2&max=6 表示查询第二页的数据,每页显示6条
-max_page_size:控制每页最大显示的条数
-比如:page_pagination.max_page_size=7
-http://127.0.0.1:8000/books/?max=1000 最多显示7条
drf框架之分页器的用法的更多相关文章
- DRF框架之认证组件用法(第四天)
1. 什么是drf 框架的认证组件: auth 就等于是jango中的Auth模块,Auth是自带session信息,但是 drf的认证组件可以自定义token携带过去,去判断用的 2.如何实现认证呢 ...
- drf框架中所有视图及用法
0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views ...
- 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用
一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...
- DRF框架之 serializers 序列化组件
1. 什么是序列化,其实在python中我们就学了序列化工具json工具,就是吧信息存为类字典形式 2. DRF框架自带序列化的工具: serializers 3. DRF框架 serializers ...
- 写写Django中DRF框架概述以及序列化器对象serializer的构造方法以及使用
写写Django中DRF框架概述以及序列化器对象serializer的构造方法以及使用 一.了解什么是DRF DRF: Django REST framework Django REST framew ...
- drf 框架
一. drf简介 drf框架,全程: django-rest framework , rest是插件名字,django插件的名字叫rest,framework是框架的意思 二. 接口 在平时生活 ...
- DRF框架学习总结
DRF框架安装配置及其功能概述 Django与DRF 源码视图解析 DRF框架序列化和返序列化 DRF框架serializers中ModelSerializer类简化序列化和反序列化操作 DRF源码s ...
- drf框架总结复习(1)
Serializers 序列化组件 为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成j ...
- DRF框架之视图方法的几个封装好的模块介绍(第三天)
1.DRF框架给我们封装好了好多层模块的 来实现简便接口的编写 # from rest_framework.mixins import CreateModelMixin, UpdateModelMix ...
随机推荐
- cifX使用心得
一.注意事项: 1.xChannelIORead()第一次读取到数据是空的.2.系统安装cifX驱动之前一定先安装有uio模块和libpciaccess库:建议系统内核为3.X.X版本,测试版本为3. ...
- jumpserver管理入门
比较规范一点的步骤 1.先在用户管理查看用户组里,添加用户组 2.在用户管理查看用户里,添加用户 3.在资产管理里查看资产,添加资产.在批量增加那里可以使用表格快速导入添加 4.在授权管理里的系统用户 ...
- How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows and Windows Server
转自:https://support.microsoft.com/en-us/help/2696547/detect-enable-disable-smbv1-smbv2-smbv3-in-windo ...
- [随笔][Java][总结][java 类型系统]
java 的类型系统大体分为两类,对象和基本类型.java使用静态类型检查来保证类型安全.每个变量在使用之前需要声明.非静态类型的语言不要求变量在使用之前进行声明. 基本数据类型 java的基本类型不 ...
- Go 知识点
必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main. package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包. main 函 ...
- Mxd文档更新比例尺
在AE中,更新Mxd文档的比例尺,比较特殊.写代码以记录,更新比例尺代码如图所示: [DllImport("User32.dll")] public static extern i ...
- 【TFS 2010配置】总是提示:Error [ System Checks ] TF255466
服务器环境: Windows Server 2008 软件环境: 安装了360杀毒软件 以下为解决方案: 在验证是否可以安装 SharePoint 时的提示,Error [ System Checks ...
- 文件下载及header方法介绍
文件下载: 文件下载是浏览器一个功能,我们用php,把一个文件转化成浏览器无法解析的文件,浏览器就会认为,他是下载文件或无效文件. 主要依靠:header() 函数: header() 方法用于客户端 ...
- New Journey Prepare
1. 车载USB充电器. 2. 轮胎检测,备胎充气. 3. 给刹车片加润滑油. 3. 给娃办身份证. 4. 取公积金. 5. 入职准备材料.
- WRF安装过程
WRF安装过程 1. 在虚拟机VMware上安装Fedora 12 x64操作系统. 2. 安装PGI9.01 a) 电驴上可下载[[顶级编译器].PGI.Workstation.C ...