Django分页功能的使用和自定义分装

编程入门 行业动态 更新时间:2024-10-15 20:22:06

Django<a href=https://www.elefans.com/category/jswz/34/1769545.html style=分页功能的使用和自定义分装"/>

Django分页功能的使用和自定义分装

1. 在settings中进行注册
# drf配置
REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': (# 'rest_framework_jwt.authentication.JSONWebTokenAuthentication','rest_framework_simplejwt.authentication.JWTAuthentication','rest_framework.authentication.SessionAuthentication','rest_framework.authentication.BasicAuthentication',),# 分页设置'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination','PAGE_SIZE': 2
}
2. 在utils/myPagination.py中根据业务要求自定义分页返回结果
from collections import OrderedDictfrom rest_framework.pagination import PageNumberPagination
from rest_framework.response import Responseclass MyPageNumberPagination(PageNumberPagination):# 1. page_size_query_param默认为None,前端通过传入pagesize字段指定一页有多少数据page_size_query_param = 'pagesize'# 2. 限制最大页面数量,为了安全max_page_size = 100# 3. 重写响应值,根据前端想要的 响应字段def get_paginated_response(self, data):return Response(OrderedDict([('page', self.page.number),('pages', self.page.paginator.num_pages),('lists', data)]))
3. 在视图中使用
from meiduo_admin.utils.myPagination import MyPageNumberPaginationclass UsersView(ListAPIView):pagination_class = MyPageNumberPaginationserializer_class = UsersSerialize# 获取queryset时需要进行排序否则会有报错提示queryset = models.User.objects.filter(is_staff=False).all().order_by('-date_joined')
4. 路由
from meiduo_admin.user.user_views import UsersViewurlpatterns = [# 获取用户path('users/', UsersView.as_view()),
]
5. postman返回结果

更多推荐

Django分页功能的使用和自定义分装

本文发布于:2023-12-03 16:43:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1656711.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分页   自定义   功能   Django

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!