码迷,mamicode.com
首页 > 其他好文 > 详细

分页功能的实现

时间:2019-12-29 13:21:49      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:work   mode   att   页码   路由   users   max   部分   代码   

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()),
]

‘‘‘

分页功能的实现

标签:work   mode   att   页码   路由   users   max   部分   代码   

原文地址:https://www.cnblogs.com/ddzc/p/12114644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!