day44-Django RestFramework(drf)下
1.5 Django RestFramework(下)
drf 内置了很多便捷的功能,在接下来的课程中会给大家依次讲解下面的内容:
- 快速上手
- 请求的封装
- 版本管理
- 认证
- 权限
- 限流
- 序列化
- 视图
- 条件搜索
- 分页
- 路由
- 解析器
10. 分页
在查看数据列表的API中,如果 数据量 比较大,肯定不能把所有的数据都展示给用户,而需要通过分页展示。
在drf中为我们提供了一些分页先关类:
BasePagination,分页基类
PageNumberPagination(BasePagination) 支持 /accounts/?page=4&page_size=100 格式的分页
LimitOffsetPagination(BasePagination) 支持 ?offset=100&limit=10 格式的分页
CursorPagination(BasePagination) 支持 上一下 & 下一页 格式的分页(不常用)
10.1 APIView视图
如果编写视图是直接继承APIView,那么在使用分页时,就必须自己手动 实例化 和 调用相关方法。
1.PageNumberPagination
2.LimitOffsetPagination
3.CursorPagination
10.2 GenericAPIView派生类
如果是使用 ListModelMixin
或 ModelViewSet
,则只需要配置相关类即可,内部会自动执行相关分页的方法。
1.PageNumberPagination
2.LimitOffsetPagination
3.CursorPagination
11. 路由
在之前进行drf开发时,对于路由我们一般进行两种配置:
-
视图继承APIView
from django.urls import path from app01 import viewsurlpatterns = [path('api/users/', views.UserView.as_view()), ]
-
视图继承
ViewSetMixin
(GenericViewSet、ModelViewSet)