欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Django中CBV(Class Base Views)模型源碼分析

 更新時(shí)間:2019年02月25日 08:54:16   作者:WUWANLEI  
這篇文章主要介紹了詳解Django中CBV(Class Base Views)模型源碼分析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧

在view文件中編寫一個(gè)類,并配置好路由

class Test(View):
 def get(self, request, *args, **kwargs):
 return HttpResponse('cbv_get')

 def post(self, request, *args, **kwargs):
 return HttpResponse('cbv_post')
url(r'test/',views.Test.as_view()),

通過as_view()進(jìn)入查看源碼

實(shí)際上views.Test.as_view()是存的一個(gè)內(nèi)存地址,加括號(hào)被調(diào)用,執(zhí)行了as_view方法里的view方法,具體看下圖:

核心是dispatch方法,在dispatch方法中完成了分發(fā)功能。

若要在Test類中自定義dispatch方法,代碼如下:

class Test(View):
 def dispatch(self, request, *args, **kwargs):
 # 加代碼
 obj = super().dispatch(self, request, *args, **kwargs)
 # 加代碼
 # 實(shí)現(xiàn)了一個(gè)類似裝飾器的效果,比如post請(qǐng)求,如果是json,手動(dòng)從request里body取出來(lái) 再轉(zhuǎn)一下
 # 或者走的時(shí)候加點(diǎn)cookie
 return obj
 
 def get(self, request, *args, **kwargs):
 return HttpResponse('cbv_get')

 def post(self, request, *args, **kwargs):
 return HttpResponse('cbv_post')

流程總結(jié):

CBV模型

  • 在views中寫一個(gè)類,繼承View,里面寫get方法,post方法
  • 在路由中配置: url(r'^test/', views.Test.as_view()),實(shí)際上第二個(gè)參數(shù)位置,放的還是一個(gè)函數(shù)內(nèi)存地址
  • 當(dāng)請(qǐng)求來(lái)了,就會(huì)執(zhí)行第二個(gè)參數(shù)(request,參數(shù)),本質(zhì)上執(zhí)行view()
  • view內(nèi)部調(diào)用了dispatch()方法
  • dispatch分發(fā)方法,根據(jù)請(qǐng)求方式不同,執(zhí)行的方法不同

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python開發(fā)之字符串string操作方法實(shí)例詳解

    python開發(fā)之字符串string操作方法實(shí)例詳解

    這篇文章主要介紹了python開發(fā)之字符串string操作方法,以實(shí)例形式較為詳細(xì)的分析了Python針對(duì)字符串的轉(zhuǎn)義、連接、換行、輸出等操作技巧,需要的朋友可以參考下
    2015-11-11
  • Python的type函數(shù)結(jié)果你知道嘛

    Python的type函數(shù)結(jié)果你知道嘛

    這篇文章主要為大家介紹了Python的type函數(shù)結(jié)果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯

    python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯

    這篇文章主要介紹了python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯,其中用到了多線程threading、弱引用weakref和Lua腳本等相關(guān)知識(shí),需要的朋友可以參考下
    2024-07-07
  • 一文帶你掌握Python自然語(yǔ)言處理庫(kù)SpaCy

    一文帶你掌握Python自然語(yǔ)言處理庫(kù)SpaCy

    SpaCy是一個(gè)非常強(qiáng)大的Python自然語(yǔ)言處理庫(kù),它包含了眾多強(qiáng)大功能,如詞性標(biāo)注、命名實(shí)體識(shí)別、依賴關(guān)系解析等等,這篇文章的目標(biāo)是幫助你了解SpaCy的基本功能和如何使用,需要的朋友可以參考下
    2023-07-07
  • python操作cfg配置文件方式

    python操作cfg配置文件方式

    今天小編就為大家分享一篇python操作cfg配置文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-12-12
  • Python隨機(jī)生成均勻分布在三角形內(nèi)或者任意多邊形內(nèi)的點(diǎn)

    Python隨機(jī)生成均勻分布在三角形內(nèi)或者任意多邊形內(nèi)的點(diǎn)

    這篇文章主要為大家詳細(xì)介紹了Python隨機(jī)生成均勻分布在三角形內(nèi)或者任意多邊形內(nèi)的點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python實(shí)現(xiàn)一鍵改變r(jià)aw格式照片風(fēng)格

    Python實(shí)現(xiàn)一鍵改變r(jià)aw格式照片風(fēng)格

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)一鍵改變r(jià)aw格式照片風(fēng)格效果,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以一起學(xué)習(xí)一下
    2023-05-05
  • VSCode下配置python調(diào)試運(yùn)行環(huán)境的方法

    VSCode下配置python調(diào)試運(yùn)行環(huán)境的方法

    這篇文章主要介紹了VSCode下配置python調(diào)試運(yùn)行環(huán)境的方法,需要的朋友可以參考下
    2018-04-04
  • python 打印完整異常問題

    python 打印完整異常問題

    這篇文章主要介紹了python 打印完整異常問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • PyCM多類別混淆矩陣分析python庫(kù)功能使用探究

    PyCM多類別混淆矩陣分析python庫(kù)功能使用探究

    這篇文章主要為大家介紹了python編寫的PyCM多類混淆矩陣庫(kù),用于多類別混淆矩陣分析,幫助用戶從不同角度評(píng)價(jià)分類模型的表現(xiàn),這些指標(biāo)包括但不限于準(zhǔn)確率、召回率、F1分?jǐn)?shù)、Kappa?統(tǒng)計(jì)量等,支持二分類、多分類及多標(biāo)簽分類問題
    2024-01-01

最新評(píng)論