2024 iThome 鐵人賽2024 iThome 鐵人賽

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

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

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

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

本章重點

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

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

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

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


忍者論壇

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

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

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

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

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

設計理念

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

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

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

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

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

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


三個設計原則

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

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

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

一、最小化設計原則

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

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

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

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

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

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

這意味著:

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

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

三、簡單易用的環境

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

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

這意味著:

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

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


下一步

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

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

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