Django Ninja 教學目錄
文章目錄
賀!本系列榮獲 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 鐵人賽寫作攻略——新手必看指南 | 分享鐵人賽寫作心得與完賽技巧,幫助新手更快上手鐵人賽寫作。 |