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更加精简,清晰了~~~

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

  • 相关阅读:
    python 学习笔记(四)(流程控制)
    python 写斐波那契数列
    python 部分术语对照表
    python 学习笔记(三)(对前两节的补充)
    python # -*- coding: utf-8 -*-
    写出更好的 JavaScript 条件语句
    PHP消息队列实现及应用
    VUE3.0 路由去掉#号
    php设计模式
    workerman 可能需要用到的函数
  • 原文地址:https://www.cnblogs.com/wdbgqq/p/9892733.html
Copyright © 2011-2022 走看看