drf 分页查询
在settings.py中配置每页的个数
REST_FREMEWORK={
设置每页2个个数
"PAGE_SIZE":2,
配置全局分页只需要配置
"DEFAULE_PAGINATION_CLASS":"rest_framework.pagination.PageNumberPagination"
}
局部分页代码的实现
- 针对某一个接口的查询、进行数据的分页
from rest_framework.pagniation PageNumberPagination
- 在给要分页的类中添加
pagination_class= PageNumberPagination
全局分页代码的实现
- 针对所有的查询列表、都进行分页
drf 中的分页器
- PageNumberPagination
- LimitOffsetPagination (与PageNumberPagination使用相同 可以防止爬取)
- CursorPagination (与PageNumberPagination使用相同 需要另写模块)
自定义函数中,用 drf的分页器实现数据的分页
创建一个 分页器对象
paginator = self.pagination_class()
调用 paginate_queryset, 返回一个 page 对象
page = paginator.paginate_queryset(self.queryset, request)
把数据进行序列化
serializer = self.serializer_class(page, many=True, context={"request":request})
响应分页后的效果
return paginator.get_paginated_response(serializer.data)