rest_framework-分页
2024-09-07 10:05:26
分页
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: 设置该参数,限制一页请求的大小,防止恶意请求
最新文章
- Visaul Studio 常用快捷键的动画演示
- input checkbox属性-Indeterminate状态
- 熟悉scss
- 基于Oracle的Mybatis 批量插入
- DropzoneJS 使用指南
- Unity3D用vistual studio打卡C#脚本卡死解决
- ZOJ 2856 Happy Life 暴力求解
- python书籍推荐
- java设计模式面试考点
- Android 7.1 WindowManagerService 屏幕旋转流程分析 (二)
- python 初学之账户登录
- CRM客户关系管理系统(一)
- soapUI的安装及破解
- AI五子棋第四周——接近尾声
- uva-757-贪心
- ppp 完全理解(二)【转】
- python网络编程(六)
- codeforces1045B
- android so壳入口浅析
- GetModuleFileName和获取应用程序当前目录
热门文章
- $props, $attrs,$listeners的具体使用例子
- 机器学习实战 [Machine learning in action]
- kb4019990 补丁导致wpf无法启动异常
- 关于Resouces.resx 在WPF中{x:Static}不显示内容只显示字段的问题解决办法
- Java-用集合存储对象(新手)
- CSS每日学习笔记(2)
- 破解WIFI教程
- hdu2795billboard线段树
- SQL 分组内求最大N个或最小N个
- 《JavaScript 模式》读书笔记(5)— 对象创建模式1