最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

相關(guān)文章

  • VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解

    VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解

    這篇文章主要介紹了VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 教你用Python尋找重復(fù)文件并刪除的腳本寫法

    教你用Python尋找重復(fù)文件并刪除的腳本寫法

    這篇文章主要介紹了如何用Python尋找重復(fù)文件并刪除,該腳本主要包括diskwalk,chechsum,find_dupes,delete模塊,其中diskwalk模塊是遍歷文件的,給定路徑,遍歷輸出該路徑下的所有文件,需要的朋友可以參考下
    2022-01-01
  • Python實(shí)戰(zhàn)快速上手BeautifulSoup庫爬取專欄標(biāo)題和地址

    Python實(shí)戰(zhàn)快速上手BeautifulSoup庫爬取專欄標(biāo)題和地址

    BeautifulSoup是爬蟲必學(xué)的技能,BeautifulSoup最主要的功能是從網(wǎng)頁抓取數(shù)據(jù),Beautiful Soup自動將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼
    2021-10-10
  • Python中sys模塊常用方法與變量實(shí)例探究

    Python中sys模塊常用方法與變量實(shí)例探究

    sys?模塊是 Python 標(biāo)準(zhǔn)庫中的一個核心模塊,提供了與解釋器進(jìn)行交互的功能,了解?sys?模塊的方法和變量對于更有效地管理和調(diào)試 Python 程序至關(guān)重要,本文將深入探討?sys?模塊的常用方法和變量,通過詳細(xì)的示例代碼,幫助大家更全面地了解并靈活運(yùn)用這一關(guān)鍵模塊
    2024-01-01
  • 教你如何使用Python實(shí)現(xiàn)二叉樹結(jié)構(gòu)及三種遍歷

    教你如何使用Python實(shí)現(xiàn)二叉樹結(jié)構(gòu)及三種遍歷

    什么是二叉樹:每個節(jié)點(diǎn)最多有兩個子樹的樹結(jié)構(gòu),通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree) 二叉樹由兩個對象組成,一個是節(jié)點(diǎn)對象,一個是樹對象,需要的朋友可以參考下
    2021-06-06
  • 解決TensorFlow GPU版出現(xiàn)OOM錯誤的問題

    解決TensorFlow GPU版出現(xiàn)OOM錯誤的問題

    今天小編就為大家分享一篇解決TensorFlow GPU版出現(xiàn)OOM錯誤的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python畫折線圖的程序

    python畫折線圖的程序

    這篇文章主要為大家詳細(xì)介紹了python畫折線圖的方法,一個畫折線圖的程序具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 跟老齊學(xué)Python之用while來循環(huán)

    跟老齊學(xué)Python之用while來循環(huán)

    while,翻譯成中文是“當(dāng)...的時候”,這個單詞在英語中,常常用來做為時間狀語,while ... someone do somthing,這種類型的說法是有的。
    2014-10-10
  • 使用Python快速搭建文件傳輸服務(wù)的方法

    使用Python快速搭建文件傳輸服務(wù)的方法

    這篇文章主要介紹了使用Python快速搭建一個文件傳輸服務(wù),這樣任何一個人都能打開瀏覽器把他電腦上的文件傳給我了,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Pycharm安裝Qt Design快捷工具的詳細(xì)教程

    Pycharm安裝Qt Design快捷工具的詳細(xì)教程

    這篇文章主要介紹了Pycharm安裝Qt Design快捷工具,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論

乾安县| 阳高县| 长子县| 张掖市| 芜湖市| 营口市| 寻乌县| 民权县| 全州县| 赫章县| 吕梁市| 绿春县| 灵璧县| 怀远县| 乳源| 蛟河市| 额尔古纳市| 祥云县| 蓝田县| 北京市| 格尔木市| 霍城县| 东莞市| 翁牛特旗| 德钦县| 和田县| 浦县| 西盟| 和龙市| 依安县| 永定县| 额敏县| 天长市| 定西市| 兰溪市| 泽普县| 铁力市| 德阳市| 河西区| 丹寨县| 茌平县|