站长网 教程 RESTful 自定义分页器

RESTful 自定义分页器

RESTful 自定义分页器

如果默认的分页功能无法满足要求,可以自行定义分页器。

PageNumberPagination

前端访问网址形式:
GET  http://127.0.0.1/api/students/?page=4

可以在子类中定义的属性:
page_size :每页数目;
page_query_param :前端发送的页数关键字名,默认为"page";
page_size_query_param :前端发送的每页数目关键字名,默认为None;
max_page_size :前端最多能设置的每页数量。
from rest_framework.pagination import PageNumberPagination
class StandardPageNumberPagination(PageNumberPagination):
    page_size_query_param = 'page_size' # 每页数据条数
    max_page_size = 
class StudentViewSet(ModelViewSet):
    queryset = StudentsModel.objects.all()
    serializer_class = StudentsSerializer
    pagination_class = StandardPageNumberPagination
    
LimitOffsetPagination
前端访问网址形式:
GET http://127.0.0.1/api/students/?limit=100&offset=400

可以在子类中定义的属性:
default_limit: 默认限制,默认值与PAGE_SIZE设置为一致;
limit_query_param limit:参数名,默认 'limit;
offset_query_param: offset 参数名,默认 ‘offset’;
max_limit :最大 limit 限制,默认 None。
from rest_framework.pagination import LimitOffsetPagination
class StudentViewSet(ModelViewSet):
    queryset = StudentsModel.objects.all()
    serializer_class = StudentsSerializer
    pagination_class = LimitOffsetPagination

 

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/video/2024/0608/46104.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部