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派生类

如果是使用 ListModelMixinModelViewSet ,则只需要配置相关类即可,内部会自动执行相关分页的方法。

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)