django rest framework pagination
在drf中对于数据的返回支持多种分页技巧,在官网中主要向我们介绍了PageNumberPagination、LimitOffsetPagination、CursorPagination。
本课程的讲解使用示例项目,该项目的目录结构如下所示:
目录结构
该目录结构与django原生的目录结构差异较大,其中所有的django应用都在apps目录中,目前拥有assets和rbac两个应用。conf内存放的是urls,py和wsgi.py文件,在settings目录中写入了该项目的配置文件base.py。
对于drf的分页可以采用全局配置和对每个视图进行单独配置的方法。
如果采用全局配置需要在配置文件中设置,例如将全局分页设置为PageNumberPagination,需要在base.py中添加如下配置:
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 100
}
如果需要对每个视图进行单独配置,需要设置ModelViewSet中的pagination_class值,示例如下:
class MachineRoomViewSet(viewsets.ModelViewSet):
"""
机房操作视图
"""
queryset = MachineRoom.objects.all()
serializer_class = MachineRoomSerializer
pagination_class = PageNumberPagination
下面分别介绍这三个的使用方法:
PageNumberPagination
此分页样式在请求查询参数中接受单个号码页码。用户可以指定访问的页数,示例如下:
GET http:/