Django Ninja 01:系列導讀 × 目標讀者

2024 iThome 鐵人賽

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

在這個 30 天的系列文章中,我們將詳細探討 Django Ninja 的基礎實作,透過文字教學範例專案的程式碼,帶你一步一步熟悉這個強大而靈活的 Django API 開發框架。

作為 Django 生態系統中的新星(誕生於 2020 年),Django Ninja 融合了 Django 的穩定性和 FastAPI 的現代特性——Python 的型別提示(透過 Pydantic 實現)。這種強強結合,為開發者提供了一個健全、高效、直觀的 API 開發體驗。

不論你是經驗豐富的 Django 開發者,還是剛進入 API 開發領域的新手,這個系列都會為你提供實用的 Django Ninja 實戰經驗與技巧。

我們將從背景介紹、基礎概念開始,逐步深入探討 Django Ninja 的每個部分,幫助你快速掌握這個現代化 API 開發工具。

快速導覽

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


建議前置技能

本系列的定位是「入門級」,但這裡所謂的入門,指的是 Django Ninja 框架的入門。

所以,要充分利用好教學內容與範例專案程式碼,仍建議讀者具備以下技能:

  • Python 基礎知識:熟悉 Python 語法,有 Python 開發經驗者佳。
  • Django 基礎:了解 Django 的基本組成,比如 ORM、Views、MTV 架構等。但無須了解 Templates 部分——因為我們是開發 API。
  • HTTP 與 Web API 概念:知道什麼是 HTTP、Web API、前後端分離,並對 RESTful API 設計原則有基本理解。
  • 版本控制:為了能夠善用並操作範例專案,需要熟悉 Git、GitHub 的基本操作。

具備這些技能將幫助你更好地理解和應用本系列的內容。如果你對某些概念不太熟悉,也不用擔心,我們會在必要時進行一定的講解。

2024 iThome 鐵人賽參賽思路:主題選擇、命名與標題策略

by Sam Chivers

相關文章:

明天——13 號星期五——就是我參加今年 iThome 鐵人賽的正式開賽日。

開賽前夕,我想用本文介紹一下我的參賽主題與相關花絮。

不會提及太多技術,主要以一些個人思考及感受為主。


不過在開始前,歡迎在鐵人賽網站上訂閱我的「Django 忍法帖——Django Ninja 入門指南」系列🥰。文章也會在部落格同步發表。

我為此投入了大量時間心力,甚至還辭去了工作(誤),相信不會讓你失望。

行有餘力,也可以多多支持我們「AI 寶寶上學去!」小隊成員們的作品。

大家都是第一次參賽,非常需要您的鼓勵。

好,讓我們進入「正題」。

Kyo 待業中!細數我過去的待業時光(上)

如標題所言,我又又待業了!

上一份工作做到 8 月 31 日止,從本月開始,我的職涯再度進入「無業遊民」階段。

這也是為什麼 9 月起我有更多時間準備鐵人賽XD(可見上一篇〈AI 讓寫作變輕鬆了?我可不這麼認為〉的開頭)

我在〈Day 4:4 年 8 個月〉中曾說到:

4 年 8 個月,這是我在大學畢業、當兵退伍後,作為「無業遊民」的總時長!

沒錯,而這些時間又可以分成兩個階段。

如今再度待業,或許是回顧過往的好時機。讓我們來聊聊這兩個階段:當時在做什麼,以及現在的我如何會看待那時的自己。

不過篇幅有限, 今天先講第一階段:準備書記官考試。

AI 讓寫作變輕鬆了?我可不這麼認為

by Sam Chivers

相關文章:35,開始備戰 2024 iThome 鐵人賽

從九月初開始,我投入了更多心力在今年的鐵人賽創作上。

這一次寫文章,畢竟是要參加比賽,還要連續發文 30 天,寫作量巨大。相比以往三天曬網、兩天捕魚的獨立部落格寫作,完全不可同日而語。

實際的感受是:更辛苦,而且讓人很想逃避XD——因為你的文字會被評審!

加上我又心心念念想要拿獎,以至於才開始沒多久,就有一種力不從心的感覺。我深刻感受到創作過程中帶來的壓力與精神消耗。

這讓我不禁擔憂:「真的能在開賽日前囤完 20 篇文章嗎?」

不行,我需要助手!

Django 專案加入 Mypy 指南

Let's Django!

這是 Django Tutorial 的第 10 篇。

範例程式碼可參考我的 GitHub 專案

本文相關的程式碼改動,都集中在這個 PR


在〈《強健的 Python》筆記:如何有效導入 Type Hints〉一文中,我們探討了 type hints(type annotation)對 Python 專案開發的重要性,並在〈Python type checker:Mypy 介紹〉中介紹了目前最常用的 Python 型別檢查器——Mypy。

我想,是時候為你的 Python 專案加入型別檢查了。

本文介紹如何在 Django 專案中整合 Mypy,並提供一些實際例子來幫助你快速上手。透過這些步驟,你將能夠更好地利用型別檢查來提高程式碼的穩定性和可維護性。

系列:Mypy 三部曲

  1. 《強健的 Python》筆記:如何有效導入 Type Hints
  2. Python type checker:Mypy 介紹
  3. Django 專案加入 Mypy 指南

加入健身房,專注 Zone 2

相關文章:去了兩個月健身房之後——我的「有氧運動」進化史

就在今天,我加入了住處附近的健身房會員,正式成為一個可以在健身房打卡的人。

事實上,我本來就有配合的健身教練(在別的地方),所以報名附近健身房並不是為了重訓,而是為了可以更常做有氧運動。

這裡的有氧運動指的不是跑步。除了我實在不愛跑步,右膝的不平衡也讓我不敢讓它承受更大的衝擊力。

所以絕大部分時候,走路和健行才是我的首選——但現在不同了。


今年 5 月做了年度例行體檢,沒想到偏瘦的我(當時 60 公斤,BMI 不到 20) ,體脂測出來竟然有 23% XD。報告直接給了我紅字!

難道這就是傳說中的「隱性肥胖」(Skinny Fat)嗎? 我無法接受😂

一週走 30 公里

因此,在 6、7 月間,我增加了步行量,主要是平日晚餐後的走路,還有假日出遊。一週總距離落在 30-40 公里,總步數 7-10 萬步。

配合 4 月開始會不定期自煮中餐。這些改變讓我的體重進一步下降,現在只有 57 公斤左右。

瘦是瘦了,但這不是我主要的追求,我更關注的是體脂,而體脂還未臻理想。

畢竟上述運動, 強度有限,我需要尋找其他方法來改善。

經過一番查詢,我發現 Zone 2 訓練可能是一個好的選擇。

36,預計創作「訂戶限定」內容

這幾天在思考,如何有效利用目前使用的電子報服務,讓訂戶感到更有價值。

畢竟一年也要付給供應商——Buttondown——90 美元,要讓這筆錢花得值得。

相關文章:改用 Buttondown 作為文章訂閱服務

現階段我並不打算製作「付費訂閱」內容,只是想要為我的電子郵件訂閱者,嘗試寫作「專屬」內容——也就是「訂戶限定」內容。

作為感謝這些讀者,願意留下自己 email 的小小心意。

對作者而言,有人願意訂閱,是一種不言而喻的信任。


「用戶郵件清單」無疑是現代行銷中的一大顯學,所以許多以「變現」為目標的網站、創作者,都會想方設法吸引用戶留下 email。

我雖然沒有要變現(至少短期內無此打算),但站在創作者的角度,文章一發布就有人看見,誰能拒絕這樣的誘惑呢?

所以很多網站會把訂閱電子報放在最顯眼的位置,甚至會有「訂閱即可獲得免費禮物」的活動。

這些我多少明白,但依舊沒有這麼做。