CBV流程之View源码解析
CBV是基于反射实现根据请求方式不同,执行不同的方法。
请求流程:view源码解析
1.urls.py :请求一定来执行视图下的as_view方法。也可以直接点击as_view()来找源码。
2.views.py 视图内没有as_view方法,则找父级的as_view方法。
3.源码:as_view返回自己下面的view方法,as_view执行了自己view方法,返回值是dispatch方法.
4,dispatch方法判断请求方式。
5,所以请求已经来,第一步先执行的都是dispatch方法。
接下来我们自己也可以下dispatch方法,dispatch工作原理:
运行结果:
6,dispatch方法,父类都给我们写好了。
django rest framework框架
原理:
url -> view方法 -> dispatch方法(反射执行其他:GET/POST/DELETE/PUT)