如今新一代web應用都開始採用先後端分離的方式來進行,淘汰了之前的服務器端渲染的方式。而實現先後端分離是經過Django REST framework(如下簡稱 DRF)來實現的。他是Django框架的一個擴展,提供了便捷的 REST API 開發框架。先後端分離方式有許多好處,好比:web
1.1 能夠先後端並行開發,提升開發效率django
1.2 頁面都在客戶端進行渲染,提升了渲染速度,減少了服務器的壓力後端
1.3 一套api提供給多個客戶端使用,並且不限制客戶端的類型(web,app都可)api
提到先後端分離必然會提到restful,目標這是最流行的接口規範,愈來愈多的大型應用開始使用restful規範,restful強調一種無狀態,資源的方式在django中很著名的一個框架是drf,幫咱們減小了不少工做量。 網上關於 REST 的討論不少,在一些細節的地方卻常常稍有出入,不過大致思想都是充分利用 HTTP/HTTPS 協議的特色,好比 HTTP 方法、header 信息、HATEOAS,直接面向資源進行操做。服務器
Django REST framework 框架是一個用於構建Web API 的強大的工具。一般簡稱爲DRF框架 或 REST framework。DRF框架是創建在Django框架基礎之上,由Tom Christie大牛二次開發的開源項目。restful
drf中有封裝了十大組件,分別是序列化組件,視圖組件,認證組件,權限組件,頻率組件,解析器,分頁器,響應器,url控制器,版本控制。這十大組件,可以很好的幫助開發人員提高開發效率。app
把一些經常使用的方法從新封裝了,如GET方法封裝成了query_params,並假裝成屬性。框架
其實drf源碼的執行流程和django中的view源碼執行流程的區別關鍵是在於dispatch方法中執行的功能不一樣,drf是在dispatch中對原生的request進行了封裝,而後經過initial()方法來執行認證,權限,頻率的控制。後續會更新這三大組件的源碼分析,敬請期待!!!!前後端分離