2024 iThome 鐵人賽2024 iThome 鐵人賽

這是 Django Ninja 系列教學的第 4 篇。

在第一章中,我們對 Django Ninja 做了全方位的介紹,並且分析了它與 Django REST framework 的主要區別。

相信你對 Django Ninja 已有了一定的了解。

接下來,我們將進入第二章:專案介紹與設定

本章重點

我們將透過一個 CRUD API 範例專案,幫助你在實踐中運用 Django Ninja 的概念。

本章將對專案概念進行介紹,包括模型設計與現實世界中的對應。(卷 4)

接著介紹專案使用的 Python 開發工具(卷 5)。最後會手把手帶你,安裝專案到本機並確保它正常運行(卷 6)。

其餘有關 API 的程式碼,將在第三章陸續介紹與實作。

快速導覽

👉 完整系列目錄點此查看
👉 程式碼範例GitHub 範例專案


忍者論壇

為了讓你更好地理解 Django Ninja 並能夠進行實際操作,我們設計了一個範例專案——忍者論壇

這是一個討論區,讓開發者交流 Django Ninja 使用心得(而不是如何成為忍者)。

歡迎加入忍者論壇歡迎加入忍者論壇

這是專案的 GitHub 網址,你可以把它加到書籤,隨時參閱程式碼,加深學習印象。

這個專案將引導你如何使用 Django Ninja 來構建 API,展示其中的知識與實踐。

設計理念

專案的主題是「忍者論壇」,它是一個基本的討論區系統,具備使用者發表文章和留言評論的核心功能。

這個設計既簡單又實用,讓你能專注於 Django Ninja 核心,而不會被過多的額外功能分散注意力。

論壇的兩大基本功能,也是我們實現 API 的重點所在:

  • 使用者系統:使用者可以註冊、登入、登出,並查看自己的文章。
  • 發文系統:使用者可以建立、修改、刪除文章。

透過這個專案,你將學會如何使用 Django Ninja 快速建立相關的 API。

我們會以「發文」為中心,逐步實現不同的 API。


三個設計原則

作為一個「範例」專案,忍者論壇的設計目的,是為了讓你透過實際的操作,深入了解 Django Ninja 的基本概念與應用。

因此,我們會將專案內容嚴格控制在教學所需的範圍內,以確保學習上的專注,而不會被過多的細節所干擾。

簡言之,專案遵循以下三個設計原則。

一、最小化設計原則

所謂「最小化設計」,即盡可能確保所有實作都是教學所必須的。

我們甚至會重複使用同一個 API 作為範例,演示不同階段的功能實現。

這樣的設計可以讓教學內容保持簡潔,同時又能逐步深入 Django Ninja 的各種特性。

二、簡單易懂的程式碼結構

範例專案的程式碼結構應該是簡單明瞭的,讓讀者能快速了解各部分的邏輯與關聯。

相比於實際工作中的專案,範例專案更注重程式碼的清晰度與一望即知,避免不必要的複雜設計或抽象層次

這意味著:

  • 我們不會引入過多的元件拆分或模組化設計,而是直接將功能展示出來。
  • 每個功能的實現都力求簡潔,重點放在如何實現

這樣的設計能讓你快速理解每個程式碼片段的作用,並輕鬆應用到自己的專案中。

三、簡單易用的環境

範例專案需要一個簡單易用的環境,讓學習者可以立即運行專案並測試所學內容

工作上的專案,會涉及到很多外部依賴,但範例專案的設計則側重於讓學習者能夠快速驗證所學到的概念。

這意味著:

  • 專案不依賴完整的部署,只需要簡單的本地設定,就能快速運行和測試,讓讀者能夠立刻看到 API 的回應結果。

我們緊扣著 API 教學本身,其餘外部環節,可能需要你自行實踐與補足。


下一步

了解了範例專案的設計後,接下來我們將進入開發環境介紹

開發專案時,合適的工具能讓工作事半功倍,下一篇將介紹常用的 Python 開發工具,比如虛擬環境管理與程式碼格式化。

這些工具不僅能幫助你高效管理專案,還能大幅提升程式碼的品質與一致性。我相信,熟練掌握這些工具,是現代開發者的基本功。