天天看點

Django的CBV方式講解

cbv 顧名知義就是通過類的方法來調用,我們在url中配置為如下路徑

這裡的Cbv是一個class 類,要想使用cbv方法,這個路徑後面還得必須有一個as_view()這個是必須的固定格式

在views裡面配置類,需要導入一個子產品

Django的CBV方式講解

login的頁面配置代碼

Django的CBV方式講解

點選送出

Django的CBV方式講解
這裡通過檢視View的源碼,可以看到裡面會有很多種送出方法 <code>http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']</code> 使用ajax的時候這些方法都是可以使用的。

另外繼承類不光有View,還有很多的,檢視源碼就可以看到的

Django的CBV方式講解
我的django版本号是 C:\Users\Tony&gt;python3 -m django --version 1.9.13

這種更具url來比對方法的是通過反射方法(getattr)來做的。請求過來後先走dispatch這個方法,這個方法存在View類中。

如果需要批量對方法,例如get,post等方法做一些操作的時候,這裡我們可以手動寫一個dispatch,這個dispatch就和裝飾器的效果一樣。因為請求來的時候總是先走的dispatch。

這次我們在通過浏覽器通路的時候,發現不管get或者post方法,都會走print代碼,

Django的CBV方式講解

本文轉自 kesungang 51CTO部落格,原文連結:http://blog.51cto.com/sgk2011/2061658,如需轉載請自行聯系原作者