在學(xué)習(xí)Django過程中在views.py進行邏輯處理時接觸到了兩種視圖的書寫風(fēng)格,F(xiàn)BV和CBV
FBV 指 function based views,即基于函數(shù)的視圖
CBV 指 class based views,即基于類的視圖
基于類的視圖相較于基于函數(shù)的視圖可以更加便利的實現(xiàn)類的繼承封裝等。在日常使用的時候,二者的區(qū)別主要在于對于request的請求方法的處理方式
FBV
我們通過函數(shù)傳入的request的method來判斷客戶端發(fā)起的是什么請求,并進行相應(yīng)的操作,返回相應(yīng)的數(shù)據(jù)。
def fbv(request):
if request.method == 'GET':
return HttpResponse("GET")
elif request.method == 'POST':
return HttpResponse("POST")
else:
return HttpResponse("OTHER")
在urls.py中,我們使用下面的格式來書寫路徑
path('test/', views.fbv),
CBV
我們在類中定義相應(yīng)請求的方法,并在方法中實現(xiàn)相應(yīng)的邏輯處理并返回相應(yīng)的數(shù)據(jù),這種基于類的視圖很適用于restful風(fēng)格的書寫。
class CBV(View):
@csrf_exempt
def get(self):
return HttpResponse("GET")
@csrf_exempt
def post(self):
return HttpResponse("POST")
@csrf_exempt
def put(self):
return HttpResponse("PUT")
在urls.py中,我們使用下面的格式來書寫路徑
path('test/', views.cbv.as_view()),
到此這篇關(guān)于 詳解Django中的FBV和CBV對比分析的文章就介紹到這了,更多相關(guān)Django FBV和CBV對比 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Django中的FBV和CBV用法詳解
- Django CBV與FBV原理及實例詳解
- Django中的CBV和FBV示例介紹