詳解Django中的FBV和CBV對(duì)比分析
在學(xué)習(xí)Django過(guò)程中在views.py進(jìn)行邏輯處理時(shí)接觸到了兩種視圖的書(shū)寫(xiě)風(fēng)格,F(xiàn)BV和CBV
FBV 指 function based views,即基于函數(shù)的視圖
CBV 指 class based views,即基于類的視圖
基于類的視圖相較于基于函數(shù)的視圖可以更加便利的實(shí)現(xiàn)類的繼承封裝等。在日常使用的時(shí)候,二者的區(qū)別主要在于對(duì)于request的請(qǐng)求方法的處理方式
FBV我們通過(guò)函數(shù)傳入的request的method來(lái)判斷客戶端發(fā)起的是什么請(qǐng)求,并進(jìn)行相應(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中,我們使用下面的格式來(lái)書(shū)寫(xiě)路徑
path(’test/’, views.fbv),CBV
我們?cè)陬愔卸x相應(yīng)請(qǐng)求的方法,并在方法中實(shí)現(xiàn)相應(yīng)的邏輯處理并返回相應(yīng)的數(shù)據(jù),這種基于類的視圖很適用于restful風(fēng)格的書(shū)寫(xiě)。
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中,我們使用下面的格式來(lái)書(shū)寫(xiě)路徑
path(’test/’, views.cbv.as_view()),
到此這篇關(guān)于 詳解Django中的FBV和CBV對(duì)比分析的文章就介紹到這了,更多相關(guān)Django FBV和CBV對(duì)比 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 編程語(yǔ)言PHP在Web開(kāi)發(fā)領(lǐng)域的優(yōu)勢(shì)在哪?3. 什么是python的自省4. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)5. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題6. 基于android studio的layout的xml文件的創(chuàng)建方式7. Android如何加載Base64編碼格式圖片8. Springboot Druid 自定義加密數(shù)據(jù)庫(kù)密碼的幾種方案9. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)10. 圖文詳解vue中proto文件的函數(shù)調(diào)用

網(wǎng)公網(wǎng)安備