rest-framework(APIView)源码

 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),

猜你喜欢

转载自www.cnblogs.com/Yang-Sen/p/9396226.html