1. 程式人生 > >CBV-2-CBV流程-View源碼解析

CBV-2-CBV流程-View源碼解析

rest TP 不同 url 源碼 方式 () IE 沒有

CBV是基於反射實現根據請求方式不同,執行不同的方法。

請求流程:view源碼解析

1.urls.py :請求一定來執行視圖下的as_view方法。也可以直接點擊as_view()來找源碼。

技術分享圖片

2.views.py 視圖內沒有as_view方法,則找父級的as_view方法。

技術分享圖片

3.源碼:as_view返回自己下面的view方法,as_view執行了自己view方法,返回值是dispatch方法.

技術分享圖片

4,dispatch方法判斷請求方式。

技術分享圖片

5,所以請求已經來,第一步先執行的都是dispatch方法。

接下來我們自己也可以下dispatch方法,dispatch工作原理:

技術分享圖片

運行結果:

技術分享圖片

6,dispatch方法,父類都給我們寫好了。

技術分享圖片

django rest framework框架

原理:   

url -> view方法 -> dispatch方法(反射執行其他:GET/POST/DELETE/PUT)

CBV-2-CBV流程-View源碼解析