一.在serializers.py中创建序列化对象类
from rest_framework import serializers from .models import Role class PagerSerialiser(serializers.ModelSerializer): class Meta:
# 绑定模型 model = Role
# 处理所有字段 fields = "__all__"
二.视图views.py中
from .serializsers import PagerSerialiser from rest_framework.response import Response from rest_framework.pagination import PageNumberPagination
from rest_framework.views import APIView
#自定义分页类 class MyPageNumberPagination(PageNumberPagination): #每页显示多少个 page_size = 3 #默认每页显示3个,可以通过传入pager1/?page=2&size=4,改变默认每页显示的个数 page_size_query_param = "size" #最大页数不超过10 max_page_size = 10 #获取页码数的, 可以传入 page 参数进行获取不同的页码数的数据 page_query_param = "page" class Pager1View(APIView): def get(self,request,*args,**kwargs): #获取所有数据 roles = models.Role.objects.all() #创建分页对象,这里是自定义的MyPageNumberPagination pg = MyPageNumberPagination() #获取分页的数据 page_roles = pg.paginate_queryset(queryset=roles,request=request,view=self) #对数据进行序列化 ser = PagerSerialiser(instance=page_roles,many=True) return Response(ser.data)