标签:发送 delete let generic 定义 lte 一个 fse 分页器
目录
drf 的GenericAPIView
这个视图基类提供了三种分页器:但是这里只列举两个,个人认为,最后一个没什么用
PageNumberPagination
类 (常用)作用:一页显示的条数
# url:示例
http://http://127.0.0.1:8000/books/?page=2
http://http://127.0.0.1:8000/books/?page=2&page_size=100
LimitOffsetPagination
类 作用:从offset开始往后显示limit条
# url:示例
http://http://127.0.0.1:8000/books/?limit=100
http://http://127.0.0.1:8000/books/?limit=100&offset=400
CursorPagination
类 作用:只是将url中做了一层加密,其他的没有不同,但必须和OrderingFilter类排序参数连用
定义分页器类
from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination
class CoursePageNumberPagination(PageNumberPagination):
# 默认一页条数
page_size = 2
# 前端发送的页数关键字名
page_query_param = 'page'
# 用户自定义一页条数 关键字名
page_size_query_param = 'page_size'
# 用户自定义一页最大控制条数
max_page_size = 10
class CourseLimitOffsetPagination(LimitOffsetPagination):
# 默认一页条数
default_limit = 2
# 从offset开始往后显示limit条
limit_query_param = 'limit'
offset_query_param = 'offset'
max_limit = 2
使用
# 导入分页器组件
from . import paginations
class FreeCourseListAPIView(ListAPIView):
queryset = models.Course.objects.filter(is_delete=False, is_show=True).order_by(
"-orders").all()
serializer_class = serializers.FreeCourseModelSerializer
# 使用分页器(只能使用一个)
# pagination_class = paginations.CoursePageNumberPagination
pagination_class = paginations.CourseLimitOffsetPagination
标签:发送 delete let generic 定义 lte 一个 fse 分页器
原文地址:https://www.cnblogs.com/XuChengNotes/p/12019778.html