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

Django CBV模型源碼運(yùn)行流程詳解

 更新時(shí)間:2020年08月17日 15:27:19   作者:Wanlei  
這篇文章主要介紹了Django CBV模型源碼運(yùn)行流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在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()),

通過(guò)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編寫分析Python程序性能的工具的教程

    用Python編寫分析Python程序性能的工具的教程

    這篇文章主要介紹了用Python編寫分析Python程序性能的工具教程,包括了對(duì)內(nèi)存泄漏等常見(jiàn)問(wèn)題的檢測(cè)方法,需要的朋友可以參考下
    2015-04-04
  • 元組列表字典(莫煩python基礎(chǔ))

    元組列表字典(莫煩python基礎(chǔ))

    這篇文章主要介紹了python元組列表字典,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過(guò)程

    Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • pytorch人工智能之torch.gather算子用法示例

    pytorch人工智能之torch.gather算子用法示例

    這篇文章主要介紹了pytorch人工智能之torch.gather算子用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Python3使用turtle繪制超立方體圖形示例

    Python3使用turtle繪制超立方體圖形示例

    這篇文章主要介紹了Python3使用turtle繪制超立方體圖形,結(jié)合實(shí)例形式分析了Python使用海龜繪圖模塊turtle進(jìn)行復(fù)雜圖形繪制的相關(guān)原理與操作技巧,需要的朋友可以參考下
    2018-06-06
  • python中類與對(duì)象之間的關(guān)系詳解

    python中類與對(duì)象之間的關(guān)系詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python中類與對(duì)象之間的關(guān)系詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • pyCharm 設(shè)置調(diào)試輸出窗口中文顯示方式(字符碼轉(zhuǎn)換)

    pyCharm 設(shè)置調(diào)試輸出窗口中文顯示方式(字符碼轉(zhuǎn)換)

    這篇文章主要介紹了pyCharm 設(shè)置調(diào)試輸出窗口中文顯示方式(字符碼轉(zhuǎn)換),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python實(shí)現(xiàn)密碼強(qiáng)度校驗(yàn)

    python實(shí)現(xiàn)密碼強(qiáng)度校驗(yàn)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)密碼強(qiáng)度校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • python中判斷類型函數(shù)isinstance()示例詳解

    python中判斷類型函數(shù)isinstance()示例詳解

    isinstance()函數(shù)是Python的內(nèi)置函數(shù),用于判斷一個(gè)變量是否是某個(gè)類型或者是該類型的子類的實(shí)例,在Python中,所有類都繼承自object,所以任何實(shí)例都會(huì)是object的實(shí)例,本文給大家介紹python中判斷類型函數(shù)isinstance(),感興趣的朋友一起看看吧
    2024-10-10
  • python如何往列表頭部和尾部添加元素

    python如何往列表頭部和尾部添加元素

    這篇文章主要介紹了python如何往列表頭部和尾部添加元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評(píng)論