學習 Django REST framework 的 View 函式

這是 Django Tutorial 的第 9 篇、DRF 系列的第 3 篇。
範例程式碼可參考我的 GitHub 專案。
本文相關的程式碼改動,都集中在這個 PR。
Views 是 Django 中處理 HTTP 請求的核心邏輯。它的作用是接收請求、處理請求,最後返回 response:
A view function, or view for short, is a Python function that takes a web request and returns a web response.
在 Django 中,我們可以使用兩種方式來撰寫 views:
- Function-Based Views(FBV),其實就是一個 Python 函式,也是 Django 預設的 view 寫法,所以又稱 view 函式。
- Class-Based Views(CBV)。CBV 是 Django 1.3 版本引入的,它是基於類別的 view 寫法。
CBV 與 FBV
「CBV vs. FBV」是初學 Django 一個常見的議題。如系列的第一篇所言:
CBV 有著重用程式碼優勢,適合大型專案。而 FBV 則以簡單、直接為賣點,方便快速開發中小型專案。
究竟要選哪個,取決於個人喜好與專案需求。
Django REST framework(以下簡稱 DRF)同時支援這兩種 views。
事實上,DRF 顯然更加鼓勵使用 CBV,不僅提供了許多現成的 generic views,它的很多元件也是基於 CBV 設計的。
不過,本文只打算介紹 DRF 中的 FBV,並實作一個 DRF view function。



