Django CBV和FBV
Django CBV和FBV
Django内部CBV内部接收方法操作:
1、通过客户端返回的请求头RequestMethod与RequesrtURL,会以字符串形式发送到服务器端。
2、取到值后通过dispatch方法将请求头转换为小写,然后通过反射查找类里的对应方法。
- /index/ -> 函数名
- /index/ -> 类
注:FBV & CBV 建议两者都用。
FBV:function base view
# url.py index -> 函数 urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.函数名), ] # view.py def 函数名(request): return HttpResponse('Index')
CBV:class base view
# url.py index -> 类 urlpatterns = [ path('admin/', admin.site.urls), path('home/', views.类名.as_view()), ] # view.py class 类名(View): # 调用父类中的dispatch,保留父类功能的基础上增加功能 def dispatch(self, request, *args, **kwargs): print("定制功能1") result = super(Home,self).dispatch(request,*args,**kwargs) print("定制功能2") return result def get(self,request): return render(request,'home.html')