zoukankan      html  css  js  c++  java
  • Django Rest-Framework的视图

    APIVIEW

      django中写CBV的时候继承的是View,rest_framework继承的是APIView,不管是View还是APIView最开始调用的都是as_view()方法~~那我们走进源码看看~~

      APIView继承了View, 并且执行了View中的as_view()方法,最后把view返回了,用csrf_exempt()方法包裹后去掉了csrf的认证

      我们看到了~在View中的as_view方法返回了view函数,而view函数执行了self.dispatch()方法~~但是这里的dispatch方法应该是我们APIView中的~~

      去initialize_request中看下把什么赋值给了request,并且赋值给了self.request, 也就是我们在视图中用的request.xxx到底是什么~~

    我们看到,这个方法返回的是Request这个类的实例对象~~我们注意我们看下这个Request类中的第一个参数request,是我们走我们django的时候的原来的request~

    我们看到了,这个Request类把原来的request赋值给了self._request, 也就是说以后_request是我们老的request,新的request是我们这个Request类~~

    我们用了rest_framework框架以后,我们的request是重新封装的Request类~

      request.query_params 存放的是我们get请求的参数

      request.data 存放的是我们所有的数据,包括post请求的以及put,patch请求~~~

      相比原来的django的request,我们现在的request更加精简,清晰了~~~

     本人自己梳理的一张流程图:

  • 相关阅读:
    [课程设计]任务进度条&开发日志目录
    《软件工程》课程设计-团队成立
    软件工程学期总结
    第三次冲刺及课程设计 617
    学术诚信与职业道德
    第二个冲刺
    操作系统 实验四主存空间的分配和回收
    0526 《构建之法》第8-10章读后感
    SCRUM项目 6.0
    SCRUM项目 5.0
  • 原文地址:https://www.cnblogs.com/wdbgqq/p/9892733.html
Copyright © 2011-2022 走看看