天天看點

Django drf:cbv(class base view)源碼分析

cbv是基于類的視圖

# 首先要在路由層配置:

Django drf:cbv(class base view)源碼分析

# 找到類綁定方法as_view

Django drf:cbv(class base view)源碼分析

# 點開dispatch的方法

Django drf:cbv(class base view)源碼分析

# http_method_names其實就是方法的清單

Django drf:cbv(class base view)源碼分析
整個流程:

  1.寫一個基于類的視圖

  2.然後在路由層配置,第二參數寫as_view,加括号執行

  3.由于父級中沒有需要到view中找方法,as_view方法其實是一個閉包函數,傳回的一個函數位址加括号執行

  4.as_view中執行了dispatch方法,就是将視圖類中的參數拿到,和清單中方法比較,如果有傳回執行,沒有就提示錯誤資訊