午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

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

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

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

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類(lèi)中自定義dispatch方法,代碼如下:

class Test(View): def dispatch(self, request, *args, **kwargs): # 加代碼 obj = super().dispatch(self, request, *args, **kwargs) # 加代碼 # 實(shí)現(xiàn)了一個(gè)類(lèi)似裝飾器的效果,比如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中寫(xiě)一個(gè)類(lèi),繼承View,里面寫(xiě)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í)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 一区二区免费在线观看视频 | 色老二导航 | 亚洲三级免费 | 激情六月天 | 欧美狂猛xxxxx乱大交3 | 日日夜夜操操操 | 男人的天堂官网 | 久久久夜夜 | 手机看片国产日韩 | 福利一区在线 | 天天色天天色天天色 | 亚洲国产成人自拍 | 一级黄色大毛片 | 亚洲黄色精品 | 国产www视频| 在线视频中文字幕 | 国产精品成人在线观看 | 国产精品自拍第一页 | 亚洲激情一区 | 在线成人免费 | 伊人网伊人影院 | 激情片网站 | 国产午夜精品一区二区三区视频 | 日韩色影院 | 亚洲美女久久 | 日韩视频免费在线观看 | 琪琪久久| 成人天堂噜噜噜 | 91手机看片 | 免费一二三区 | 美女av在线免费观看 | 天堂网亚洲 | 99热这里 | 亚洲精品国产精品国自产网站 | 上原亚衣在线 | 大地资源高清播放在线观看免费 | 国产亚洲精品精品精品 | 午夜精品999 | 国产原创视频在线观看 | 亚洲综合网站 | h视频在线播放 |