亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django CBV模型源碼運行流程詳解

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

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

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()進入查看源碼

實際上views.Test.as_view()是存的一個內(nèi)存地址,加括號被調(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)
    # 加代碼
    # 實現(xiàn)了一個類似裝飾器的效果,比如post請求,如果是json,手動從request里body取出來 再轉(zhuǎ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中寫一個類,繼承View,里面寫get方法,post方法
  • 在路由中配置: url(r'^test/', views.Test.as_view()),實際上第二個參數(shù)位置,放的還是一個函數(shù)內(nèi)存地址
  • 當請求來了,就會執(zhí)行第二個參數(shù)(request,參數(shù)),本質(zhì)上執(zhí)行view()
  • view內(nèi)部調(diào)用了dispatch()方法
  • dispatch分發(fā)方法,根據(jù)請求方式不同,執(zhí)行的方法不同

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

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

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

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

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

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

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

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

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

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

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

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

    python中類與對象之間的關系詳解

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

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

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

    python實現(xiàn)密碼強度校驗

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

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

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

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

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

最新評論