賀!本系列榮獲 2024 年 iThome 鐵人賽 Python 組「優選」獎 🏆(得獎名單

歡迎學習《Django 忍法帖——Django Ninja 入門指南》。本系列共 30 篇文章,涵蓋 Django Ninja 的核心概念與實戰技巧,搭配 GitHub 範例專案,讓你從入門到精通。


第一章:導讀與 Django Ninja 介紹(1-3)

編號 標題 摘要
01 系列導讀 × 目標讀者 說明本系列的目標讀者與內容概覽,適合對 Django Ninja 感興趣的開發者。
02 架構與章節導覽 梳理系列的章節設計與學習路徑,幫助讀者快速了解學習順序與進度。
03 Django Ninja 介紹——與 Django REST framework 主要區別 比較 Django Ninja 與 Django REST framework,討論其主要區別與優勢。

第二章:範例專案與環境設定(4-6)

編號 標題 摘要
04 API 範例專案介紹 詳細介紹範例專案的設計目標與整體架構。
05 Python 現代開發工具介紹 介紹常用的 Python 開發工具,例如 Poetry、Ruff、pre-commit 等等。
06 環境設定 × 如何使用本專案 建立開發環境,並實際運行範例專案,為接下來的開發與學習作好準備。

第三章:Django Ninja 基本功(7-16)

第一節:路由(Routers)

編號 標題 摘要
07 路由(上)傳統 Django 路由做法 介紹傳統 Django 的路由處理方式,說明其設計上的優勢與困境。
08 路由(下)Django Ninja 路由設定 講解 Django Ninja 的路由設定與其對傳統方式的改進。

第二節:請求(HTTP Request)

編號 標題 摘要
09 請求(一)Django Ninja 處理 HTTP 請求 分析 HTTP 請求在 Django Ninja 中的處理過程。
10 請求(二)路徑參數 - Path Parameters 教你如何在 Django Ninja 中處理 URL 路徑參數。
11 請求(三)查詢參數 - Query Parameters 介紹 Django Ninja 如何處理查詢參數,這是 RESTful API 傳遞額外資訊的重要方式。
12 請求(四)Request Body 與 Schema 介紹 深入了解如何使用 Schema 定義和驗證請求的 Body 資料。

第三節:回應(HTTP Response)

編號 標題 摘要
13 回應(一)Django Ninja 處理 HTTP 回應 探討 Django Ninja 回應的基本處理方式,包括 JSON 序列化與回應的狀態碼。
14 回應(二)用 Schema 建立巢狀結構回應 使用 Schema 為回應資料建立巢狀結構的實踐技巧,提升 API 資料表現力。
15 回應(三)為何不用 ModelSchema?——相比 DRF,我更偏愛 Django Ninja 的理由 深入討論 ModelSchema 的局限性,以及 Django Ninja 在回應處理上的優勢。
16 回應(四)Resolver 方法——欄位資料格式化 解析如何使用 Resolver 方法格式化回應欄位的資料。

第四章:API 文件(17-18)

編號 標題 摘要
17 API 文件(上)Django Ninja 文件實踐指南 說明 Django Ninja 如何生成與自定義 API 文件,提升開發效率與文件品質。
18 API 文件(下)Pydantic Field 設定範例與預設值 示範如何透過 Pydantic 設定欄位屬性與預設值,改善 API 文件表現力。

第五章:資料驗證與錯誤處理(19-22)

編號 標題 摘要
19 資料驗證(上)Pydantic 單一欄位驗證 探討如何透過 Pydantic 驗證單一欄位的資料類型與格式。
20 資料驗證(下)Pydantic 跨欄位驗證 說明如何實現跨欄位驗證,保證資料一致性與正確性。
21 錯誤處理(上)HttpError 與自定義 HTTP 回應 分析如何使用 HttpError 與自定義回應處理例外情況。
22 錯誤處理(下)全域錯誤處理——使用 Exception Handlers 如何設置全域錯誤處理機制,統一管理與處理例外狀況。

第六章:API 進階功能(23-27)

編號 標題 摘要
23 檔案上傳——Django UploadedFile 介紹 介紹如何透過 Django Ninja 處理檔案上傳的相關功能與實踐技巧。
24 分頁(上)Django Ninja 的內建分頁器 探討 Django Ninja 的內建分頁功能,並舉例說明常見用法。
25 分頁(下)自定義分頁類別 說明如何自定義分頁類別,以滿足更複雜的需求。
26 資料查詢與過濾(上)FilterSchema 介紹 介紹 FilterSchema 的基本用法,實現簡單的資料過濾功能。
27 資料查詢與過濾(下)FilterSchema 多欄位查詢 活用 FilterSchema,設定多欄位過濾條件,應對複雜的資料查詢需求。

第七章:身分認證與單元測試(28-29)

編號 標題 摘要
28 身分認證——Session 認證與全域設定 探討如何使用 Session 認證,並設定全域認證機制。
29 單元測試——使用 Test Client 與 pytest 測試 API 示範如何透過 Test Client 與 pytest 編寫與執行 API 測試,提升專案穩定性。

第八章:系列回顧與完賽心得(30-31)

編號 標題 摘要
30 系列回顧與完賽心得 總結 Django Ninja 系列的教學重點,並分享參賽心得與未來計劃。
31 iThome 鐵人賽寫作攻略——新手必看指南 分享鐵人賽寫作心得與完賽技巧,幫助新手更快上手鐵人賽寫作。