1,APIView
- 作用:
- 1,提供request,response
- 2,封装认证,权限,限流
- 3,继承View
一级视图APIView:
1, 继承自View, apiView属于rest_framework中的类
2, 扩展了,自己的request
3, 扩展了,自己的response
a. 可以自动根据前端的Accept类型,返回不同的数据
b. 可以设置常量类型的状态码,可以通过单词的含义来设置
4, 添加了,认证,权限,用户管理等功能
APIView中的request对象:
获取数据GET: request.query_params
获取数据POST: request.data (不管是表单还是json)
View:
获取GET数据: request.GET
获取POST表单数据: request.POST
获取POST,json数据: request.body
2,request
- 作用: 获取数据
- 查询参数: request.query_params
- 获取post数据: request.data
3,Response
- 作用: 返回响应
- 1, 通过Accept自动返回数据类型
- 2, 可以通过status设置状态码
4,API实现列表视图
- 案例: 见代码
5,GenericAPIView实现详情视图
-
作用: 提供序列化器,查询集
GenericAPIView特点: 1, GenericAPIView继承了APIView类,为列表视图, 详情视图添加了常用的方法和属性。 属性: serializer_class: 给视图提供了通用的序列化器类 queryset: 表示查询的数据集(结果集),一般写成所有的结果集(给列表视图,详情视图使用) lookup_field: 默认的查询方式为pk, 如果不想要,可以重写 方法: get_queryset: 获取了,属性queryset的值 serializer_class: 获取序列化器类,就是上面的属性serializer_class get_serializer: 获取的是序列化器的,实例对象 get_object: 根据pk,获取了数据集中的单个对象 2, GenericAPIView与一个或多个mixin类组合而构建的 作用: 已经提供好了,对应的业务处理功能 mixin名称 提供方法 作用 ListModelMixin list 获取所有数据 CreateModelMixin create 创建数据 RetrieveModelMixin retrieve 获取单个数据 UpdateModelMixin update 跟新数据 DestroyModelMixin destroy 删除单个数据
6,GenericAPIView和MiXin配合使用
- 案例: 见代码
7,MiXin的含义
- 作用: 提供对应的, list,create,retrieve,update,destroy方法
8,三级视图
-
作用: 封装get,post方法,继承GenericAPIView和mixin
三级视图: 1, 继承自了,GenericAPIView,和mixin 2, 不同的三级视图提供了不同的功能 三级视图名称 父类 提供方法 作用 ListAPIView GenericAPIView,ListModelMixin get 获取所有数据 CreateAPIView GenericAPIView,CreateModelMixin post 新建单个数据 RetrieveAPIView GenericAPIView,RetrieveModelMixin get 获取单个数据 UpdateAPIView GenericAPIView,UpdateModelMixin put 跟新数据 DestroyAPIView GenericAPIView,DestroyModelMixin delete 删除单个数据
9,视图集(了解)
- 作用: 将一组视图封装在一起
- 视图集:
1, 可以将一组视图集合在一起,比如,获取单个数据,获取所有数据
2, 不在提供get,post等方法,而是使用retrieve,list,create,update,destroy等方法
3, 路由访问格式: url(r"路径",类视图.as_view({“get”:“retrieve”}))
- 视图集:
11,ModelViewSet
- 案例: 见代码