av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:53日期:2024-09-23 15:07:20

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

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

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

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

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

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

若要在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取出來 再轉(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)求來了,就會(huì)執(zhí)行第二個(gè)參數(shù)(request,參數(shù)),本質(zhì)上執(zhí)行view() view內(nèi)部調(diào)用了dispatch()方法 dispatch分發(fā)方法,根據(jù)請(qǐng)求方式不同,執(zhí)行的方法不同

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 中文字幕亚洲精品 | 欧美黄色性生活视频 | 羞羞视频免费在线观看 | 在线观看免费av网 | 国产精品免费在线 | 久久国产区 | 免费a v网站 | 欧美精品一区二区免费视频 | 日韩波多野结衣 | www.国产精| 久久久综合精品 | 亚洲一区中文字幕在线观看 | 国产精品7777777 | 久草热播| 老子午夜影院 | 91玖玖| 激情三区 | 欧美一区二区免费 | 91精品国产91久久久久久密臀 | 福利国产 | 久久国产精品一区 | 天天看天天操 | 97av| 国产精品视频导航 | 日韩视频在线一区 | 欧美性jizz18性欧美 | 亚洲精选一区二区 | 99精品欧美一区二区三区综合在线 | 91精品国产综合久久久动漫日韩 | 中文二区 | 爱爱免费视频 | 欧美精品一二区 | 亚洲一区中文字幕在线观看 | 国产精品污www一区二区三区 | 黄色毛片网站在线观看 | 欧美精品一区在线发布 | 久久精品久久久久久 | 日韩视频区 | 成人精品一区亚洲午夜久久久 | 久久视频免费看 | 精品96久久久久久中文字幕无 |