CBV源码流程
1、创建url
2、创建视图类
3、as_view方法源码
因为我们自定义的试图类都会继承View类,所以启动项目的时候,url中的as_view函数就会执行,在我们自定义的函数类中没有这个方法就会到父类中去找
4、view函数
5、dispatch
6、补充(http_method_names)
url中视图函数中的执行
# url(r'^login/', views.LoginView.as_view()), # url(r'^login/', View.as_view()), # url(r'^login/', View.view),
APIView执行源码解析
使用APIView的大概流程与正常的CBV流程是差不多的,但是在一些关键方法APIView会有一些添加的代码,自定义自己的方法
1、定义url
这一步与使用View的CBV是一样的
2、定义视图类
3、查看APIView类中的as_view
APIView还是继承view类的,但会有一些自定义的方法
4、APIView自己的dispatch
由于as_view方法也是继承的父类View的as_view方法,所以接下来的流程都是一样,只不过,当在执行dispatch方法的时候它执行的APIView自己的实例方法
APIView 的url视图函数的执行
#url(r'^publishes/', views.PublishView.as_view()), #url(r'^publishes/', APIView.as_view()), #url(r'^publishes/', APIView.as_view()), #url(r'^publishes/', View.view),