分页功能的实现

DRF框架中分页功能接口

一、在框架中提供来两个类来实现分页功能,PageNumberPagination和LimitOffsetPagination

  1. PageNumberPagination是页码分页,这个类可以进行全局设置
  2. LimitOffsetPagination按照偏移量来进行分页
  3. 两个类都可以实现,在程序的具体设计上会有一部分的差别,但是差别不大。
  4. 需要注意的是:所有分页的接口实现必须依赖列表视图(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()),
]

'''

posted @ 2019-12-29 12:19  大道至诚  阅读(365)  评论(0编辑  收藏  举报