視圖是一個可調用對象,它接受一個請求而後返回一個響應。 python
使用基於類的視圖的核心是容許你使用不一樣實例方法來形影不一樣的HTTP請求方法,而不是在一個視圖函數中使用條件分支代碼來實現。 django
由於Django的URL解析器將請求和關聯的參數發送給一個可刁穎的函數兒不是一個雷,因此基於類的視圖有一個as_view()類方法類做爲類的可調用入口。改as_view()入口點建立類的一個實例並調用dispatch()方法。diapatch查看請求是GET仍是POST等等,並將請求轉發給相應的方法,若是發方法沒有定義則引起HttpResponseNotAllowed。 segmentfault
設置了類的屬性: 函數
urlpatterns = [ url(r'^about/', GreetingView.as_view(greeting="G'day")), ]
對於每一個請求都會實例化類的一個實例,可是as_view()入口點設置的類屬性值在URl第一次導入時配置。 url
將共同的行爲運用於多個類的一種方法是編寫一個封裝as_view()的方法Mixin。 spa