分页功能的实现
Posted ddzc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页功能的实现相关的知识,希望对你有一定的参考价值。
目录
DRF框架中分页功能接口
一、在框架中提供来两个类来实现分页功能,PageNumberPagination和LimitOffsetPagination
- PageNumberPagination是页码分页,这个类可以进行全局设置
- LimitOffsetPagination按照偏移量来进行分页
- 两个类都可以实现,在程序的具体设计上会有一部分的差别,但是差别不大。
需要注意的是:所有分页的接口实现必须依赖列表视图(ListAPIView),如果换成其他的视图类,系统会无法执行程序
二、以PageNumberPagination为例进行代码的编写
- 导入列表视图类和PageNumberPagination
‘‘‘python
from rest_framework.pagination import PageNumberPagination
from rest_framework.generics import ListAPIView
from users.models import Student
‘‘‘
- 创建分页器类,在类中进行分页功能的具体设置
‘‘‘python
class StudentPagination(PageNumberPagination):
page_size = 5
# 每一页中显示的信息总条数
page_query_param = 'page'
# url查询中的参数名字,例如 ?page=1
# max_page_size
# 允许的每一页最多的数据显示条数
‘‘‘
- 创建视图类,在视图类中引用定义好的分页功能类
‘‘‘python
class StudentPaginationListAPIView(ListAPIView):
queryset = Student.objects.all()
serializer_class = StudentSerializer
pagination_class = StudentPagination
# 注意分页器的使用必须配合ListAPIView列表视图类的使用
‘‘‘
- 创建url,分配路由进行程序测试
‘‘‘python
from django.urls import path
from . import views
urlpatterns = [
path('page1/', views.StudentPaginationListAPIView.as_view()),
]
‘‘‘
以上是关于分页功能的实现的主要内容,如果未能解决你的问题,请参考以下文章