Django之FBV和CBV模式

Posted sun-10387834

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法中定制自己想要的功能。

以上是关于Django之FBV和CBV模式的主要内容,如果未能解决你的问题,请参考以下文章

python(十九):django之FBV和CBV

Django之请求生命周期及FBV/CBV模式

django补充CBV和FBV模式

django:cbv模式和fbv模式的区别

django-django请求生命周期之FBV和CBV

Django之FBV和CBV