VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • Python快速入门-05 DRF请求生命周期

DRF请求生命周期

  1. 根据应用中urls.py,走as_view方法,但是视图类没有该方法,所以请求走的是APIView的as_view方法
  2. 在APIView的as_view调用父类(django原生View)的as_view,同时还禁用了 csrf 认证
  3. 在父类(django原生View)的as_view中dispatch方法请求走的又是APIView的dispatch
    因为APIView也可以走dispatch,视图类是先继承APIView,APIView中没有再去原生View中
  4. 完成任务分发,交给视图类的请求函数处理,得到请求的响应结果,返回给前台,所以以后直接就从APIView的dispatch入口看源码

前期准备


 
 

源码分析

  1. 根据应用中urls.py,走as_view方法,但是视图类没有该方法,所以请求走的是APIView的as_view方法

  2. view = super().as_view(**initkwargs)调用父类的as_view 也就是django原生的base.py中的as_view 之后再此基础上增加了 return csrf_exempt(view) 继承了APIView的视图类,会禁用csrf认证,这样就需要在settings中注释

  3. 在第二步是调用父类的as_view方法,此方法中有个关键的分发方法return self.dispatch(request, *args, kwargs) (入口:view = super().as_view(initkwargs))

  4. APIView中重写了dispatch方法

  5. 完成任务方法交给视图类的请求函数处理,得到请求的相应结果,返回给前台

__EOF__

本文作者啦啦哦 本文链接:/articlelist/uploads/allimg/210914/22164WQ3-5.jpg


相关教程