作者:HelloGitHub-追夢人物
歡迎來到 HelloDjango 全棧系列教程第二步——Django REST Framework 教程!
首先恭喜你完成了 HelloDjango 全棧系列教程的第一步——Django 博客教程(第二版),在這個教程中,我們學習了基於傳統模板引擎的開發方式,前端展示的 HTML 頁面由後端負責渲染,後端程序員包攬了前後端開發的全部工作。
但是隨著前端技術的演進,前後端分離的開發方式變得越來越流行。稍有規模的公司大都採用前後端分離的開發方式,在這種開發方式下,後端程序員只需關注業務邏輯,通過接口返回業務數據,無需懂得 HTML、CSS、JavaScript 這些前端語言(當然作為優秀的程序員,雖然不用再寫,但這些都還是要懂的);前端程序員,則可以使用藉助 Vue、React 等優秀的 js 框架以及 Webpack 等打包工具,專注於頁面開發。而將他們聯繫起來的橋樑就是前後端之間數據交互的接口規範。
現在最流行的數據交互接口規範當然要屬 REST 規範。REST 全稱 Representational State Transfer,意為"表現層狀態轉化"。簡單來說,在符合 REST 原則的 RESTful 架構中,一個 URL 代表某個網絡資源,網絡資源可以指一篇博客文章、一張圖片、一首歌曲或者一種服務等。資源通常由某種標準化的格式進行描述,描述資源的格式有很多種,例如 HTML 文檔就是一種描述形式。在此之前,XML 是最為常用的格式,但現在,也有越來越多的系統採用 JSON 這種更加輕量的描述形式。在客戶端和服務器交互時,資源便以某種描述的格式進行傳遞。客戶端則使用 HTTP 協議,充分藉助 HTTP 協議的動詞(例如 GET、POST)來表達對服務端資源進行某種操作的意圖,例如 GET 用來獲取資源,POST 用來新建資源(也可以用於更新資源),PUT 用來更新資源,DELETE 用來刪除資源。
因此,假設我們的系統採用 RESTful 架構,對於前端工程師來說,他的工作就是根據渲染的頁面,向後端發起符合 RESTful 風格的 HTTP 請求,獲取接口返回的數據,渲染前端頁面。而對於後端程序員來說,就是要編寫接口,解讀前端發來的請求,對資源進行相應操作並返回前端需要的數據。
如何解讀前端的請求、如何使用指定的格式描述並傳遞資源等都是一系列標準化且重複的工作,所以可以由一套統一的框架來實現。django 本身沒有提供這樣的處理框架,但 django 的第三方拓展——django-rest-framework 就是一套專門用來開發符合 REST 規範的 RESTful 接口的框架。可以說在現在這個前後端分離的大環境下,django 開發基本離不開 django-rest-framework。因此接下來的教程裡,我們將全面學習 django-rest-framework 的使用。
我們的示例項目將延續 Django 博客教程(第二版)中開發的博客,如果你是跟著教程到這裡的話,那你可以很順暢地繼續走下去。如果你沒有看上一部教程也沒有關係,在 django-rest-framework 教程正式開始之前會指導大家如何一步步將博客運行起來。django-rest-framework 教程雖然延續 Django 博客教程(第二版)中的項目,但在內容上並無太大關聯,如果你已經有了 django 基礎(瞭解 ORM 以及類視圖就行),就可以直接開始本教程。當然如果是純 django 新手,對 django 中的基礎概念還比較陌生的話,推薦先學習
Django 博客教程(第二版),打好基礎,再來學習本教程會事半功倍。『講解開源項目系列』——讓對開源項目感興趣的人不再畏懼、讓開源項目的發起者不再孤單。跟著我們的文章,你會發現編程的樂趣、使用和發現參與開源項目如此簡單。歡迎聯繫我、加入我們,讓更多人愛上開源、貢獻開源~
閱讀更多 HelloGitHub 的文章