Djang工程搭建基础5

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
  • 案例: 见代码

猜你喜欢

转载自blog.csdn.net/weixin_44774466/article/details/88555136