分页

from django.shortcuts import render

# Create your views here.

from rest_framework import serializers
from rest_framework.views import APIView
from .models import *
from rest_framework.response import Response
from rest_framework.pagination import PageNumberPagination class MySerializer(serializers.ModelSerializer):
class Meta:
model = Roles fields = '__all__' class MyPagination(PageNumberPagination):
page_size = 1
page_query_param = 'page'
page_size_query_param = 'page_size'
max_page_size = 50 class MyView(APIView): def get(self, request, *args, **kwargs):
queryset = Roles.objects.all()
pagers = MyPagination()
instance = pagers.paginate_queryset(queryset, request, self)
serializer = MySerializer(instance=instance, many=True)
return Response(serializer.data)
  • PageNumberPagination:需要在rest-framework的setting配置:'PAGE_SIZE'
  • 使用
    • 先实例化一个分页对象
    • 调用实例化对象的paginate_queryset方法,这个方法接受3个参数,查询的queryset对象,request,view
    • 序列化
    • 返回
  • 自定义分页对象
    • 需继承PageNumberPagination
    • 设置默认的page_size
    • page_query_param: 设置该参数,可以从url的参数里面获取请求页数
    • page_size_query_param: 设置该参数,可以从url的参数里面获取请求页数大小
    • max_page_size: 设置该参数,限制一页请求的大小,防止恶意请求

最新文章

  1. Visaul Studio 常用快捷键的动画演示
  2. input checkbox属性-Indeterminate状态
  3. 熟悉scss
  4. 基于Oracle的Mybatis 批量插入
  5. DropzoneJS 使用指南
  6. Unity3D用vistual studio打卡C#脚本卡死解决
  7. ZOJ 2856 Happy Life 暴力求解
  8. python书籍推荐
  9. java设计模式面试考点
  10. Android 7.1 WindowManagerService 屏幕旋转流程分析 (二)
  11. python 初学之账户登录
  12. CRM客户关系管理系统(一)
  13. soapUI的安装及破解
  14. AI五子棋第四周——接近尾声
  15. uva-757-贪心
  16. ppp 完全理解(二)【转】
  17. python网络编程(六)
  18. codeforces1045B
  19. android so壳入口浅析
  20. GetModuleFileName和获取应用程序当前目录

热门文章

  1. $props, $attrs,$listeners的具体使用例子
  2. 机器学习实战 [Machine learning in action]
  3. kb4019990 补丁导致wpf无法启动异常
  4. 关于Resouces.resx 在WPF中{x:Static}不显示内容只显示字段的问题解决办法
  5. Java-用集合存储对象(新手)
  6. CSS每日学习笔记(2)
  7. 破解WIFI教程
  8. hdu2795billboard线段树
  9. SQL 分组内求最大N个或最小N个
  10. 《JavaScript 模式》读书笔记(5)— 对象创建模式1