91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django中CBV模型的示例分析

發布時間:2021-08-30 13:57:18 來源:億速云 閱讀:153 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關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()進入查看源碼

Django中CBV模型的示例分析

實際上views.Test.as_view()是存的一個內存地址,加括號被調用,執行了as_view方法里的view方法,具體看下圖:

Django中CBV模型的示例分析

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

Django中CBV模型的示例分析

若要在Test類中自定義dispatch方法,代碼如下:

class Test(View):
 def dispatch(self, request, *args, **kwargs):
 # 加代碼
 obj = super().dispatch(self, request, *args, **kwargs)
 # 加代碼
 # 實現了一個類似裝飾器的效果,比如post請求,如果是json,手動從request里body取出來 再轉一下
 # 或者走的時候加點cookie
 return obj
 
 def get(self, request, *args, **kwargs):
 return HttpResponse('cbv_get')

 def post(self, request, *args, **kwargs):
 return HttpResponse('cbv_post')

流程總結:

CBV模型

  • 在views中寫一個類,繼承View,里面寫get方法,post方法

  • 在路由中配置: url(r'^test/', views.Test.as_view()),實際上第二個參數位置,放的還是一個函數內存地址

  • 當請求來了,就會執行第二個參數(request,參數),本質上執行view()

  • view內部調用了dispatch()方法

  • dispatch分發方法,根據請求方式不同,執行的方法不同

關于“Django中CBV模型的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平泉县| 岗巴县| 陆良县| 谷城县| 沧源| 友谊县| 莱阳市| 伊宁县| 永康市| 常德市| 德昌县| 东兴市| 项城市| 阳春市| 涡阳县| 灵宝市| 鄂尔多斯市| 通许县| 呼玛县| 宁武县| 临江市| 攀枝花市| 武夷山市| 金秀| 泗水县| 甘肃省| 四川省| 敖汉旗| 揭阳市| 原阳县| 萨迦县| 娄烦县| 唐河县| 伊吾县| 游戏| 孙吴县| 乐清市| 临沭县| 新龙县| 柞水县| 应城市|