Django之FBV和CBV模式
FBV就是 url路由>>>业务处理函数的方式,CBV就是url路由>>>类 的处理业务方式。
最常用的就是FBV模式,就不用过多赘述,直接上CBV的实用代码。
1、CBV的url路由该怎么写?
1 from django.contrib import admin 2 from django.urls import path 3 from django.conf.urls import url 4 from app01 import views 5 6 urlpatterns = [ 7 path('admin/', admin.site.urls), 8 url(r"cbv",views.cbv.as_view()), 9 url(r"fbv",views.fbv), 10 ]
2、CBV的view视图中的业务处理类该怎么写?
1 from django.shortcuts import render,redirect,HttpResponse 2 from django.views import View 3 # Create your views here. 4 def fbv(request): 5 if request.method=="POST": 6 return HttpResponse("fbv.post") 7 return render(request, "FBV.html") 8 9 10 class cbv(View): 11 def dispatch(self, request, *args, **kwargs): 12 if request.method=="GET": 13 print("get方式经过dispatch...") 14 else: 15 print("post方式经过dispatch...") 16 result=super(cbv, self).dispatch(request, *args, **kwargs) 17 return result 18 19 def get(self,request): 20 return render(request, "CBV.html") 21 22 def post(self,request): 23 return HttpResponse("cbv.post")
具体格式参考上述代码,在CBV的view视图类中,每次执行GET或者POST函数时都先经过dispatch方法,因此可以在dispatch方法中定制一些GET和POST方法执行前公共的业务逻辑代码,从而简化代码。也可以在dispatch方法中定制自己想要的功能。