Code and Me
Archives
Search...
Subscribe
Django Ninja 教學 23:檔案上傳
October 5, 2024
原文連結 2024 iThome 鐵人賽 在現代 Web 服務中, 檔案上傳 是一個常見的情境。 無論是使用者上傳照片、夾帶附件,檔案上傳都是不可或缺的功能。 本文介紹如何在 Django Ninja 中實現 圖片上傳 功能,以使用者「上傳大頭貼」(以下都稱為 avatar,因為大頭貼感覺太可愛🥹)API...
Django Ninja 教學 22:錯誤處理(下)全域錯誤處理——使用 Exception Handlers
October 4, 2024
原文連結 2024 iThome 鐵人賽 上一篇文章,我們學習了如何操作 HttpError ,並建議你 只在 view 函式中使用它。 但光是這樣,專案 API 的錯誤處理,還遠遠 不夠完善 ,至少有 3 個常見問題待解: Schema 中的驗證方法 ,如果不要 raise HttpError...
Django Ninja 教學 21:錯誤處理(上)自定義錯誤與 HTTP 回應
October 3, 2024
原文連結 2024 iThome 鐵人賽 在軟體開發中, 錯誤處理 是一個不容忽視——但 常常被忽視 ——的環節。 不誇張地說,錯誤處理是一個「 做得好沒人誇,做不好系統就慘兮兮 」的議題。 沒關係,我們還是 盡可能把自己做好 。 Django Ninja 使用 Pydantic...
Django Ninja 教學 20:資料驗證(下)跨欄位驗證
October 2, 2024
原文連結 2024 iThome 鐵人賽 上一篇我們講完了單一欄位的自定義驗證,這篇則要來討論 跨欄位 之間的驗證。 跨欄位驗證同樣是 API 開發中十分常見的需求,例如註冊帳號時,要保證「密碼」與「確認密碼」兩個欄位內容相同;選擇 日期期間 時,開始日期不能晚於結束日期等。 這些驗證場景 無法...
Django Ninja 教學 19:資料驗證(上)單一欄位的自定義驗證
October 1, 2024
原文連結 2024 iThome 鐵人賽 資料驗證 是 API 開發中的關鍵需求之一,它負責確保從客戶端提交的資料是 符合預期 的,從而避免潛在的錯誤和安全問題。 有效的資料驗證可以在 API 接收到錯誤資料時,給出 即時且友善 的回應,提升系統的穩定性和 使用者體驗 。 Django Ninja...
Django Ninja 教學 18:API 文件(下)用 Pydantic Field 設定範例與預設值
September 30, 2024
原文連結 2024 iThome 鐵人賽 上一篇文章中,我們探討了 Django Ninja 影響 API 文件 呈現 的一些重要設定。它們是 自動化 API 文件 的基本功,不容忽視。 但這樣 還不夠 !我們想要讓這份文件更加 生動 ,讀起來清晰易懂。 其中的關鍵在於 API 文件上的 資料範例...
訂戶限定 05:本月回顧——我的極限是一週 25 小時
September 30, 2024
回顧 2024 年 9 月份重要事記
Django Ninja 教學 17:API 文件(上)Django Ninja 實踐重點
September 29, 2024
原文連結 2024 iThome 鐵人賽 「 依程式碼自動產生 API 文件 」是 Django Ninja 的一大賣點。 事實上, API 文件的自動化 ,正是我在工作上的專案從 Django REST framework 轉向 Django Ninja 的 首要考量 ——也是我開始學習 Django...
Django Ninja 教學 16:回應(四)Resolver 方法——欄位資料格式化
September 28, 2024
原文連結 2024 iThome 鐵人賽 上一篇提到,API 回應常常是對 Django Model 物件內容的篩選與加工——然後 JSON 序列化。 其中「 加工 」部分,用更專業的說法,大概是「 資料格式化 」——依照一定的規則,對輸出資料進行 某種轉換或重新組織 ,以符合 特定的輸出格式 。...
Django Ninja 教學 15:回應(三)為何不用 ModelSchema?——相比 DRF,我更偏愛 Django Ninja 的理由
September 27, 2024
原文連結 2024 iThome 鐵人賽 Django API 回應,常常是對 Model 物件(即 db 資料)內容進行一定的篩選與加工。 比如「取得單一文章資訊」API,實際上就是從 Post 物件挑選欄位,再進行序列化。 這個過程中,我們需要考慮如何將 模型物件 轉換為 API...
Django Ninja 教學 14:回應(二)巢狀結構回應
September 26, 2024
原文連結 2024 iThome 鐵人賽 在 API 開發中,我們經常會遇到 關聯模型 之間的資料需要 同時返回 的情況。 特別是在處理「一對一」或「一對多」關聯時, 多層結構 往往是常態。 我們希望以 巢狀結構 ( Nested Objects )的方式返回資料,這樣可以讓 API 的使用者 一次取得必要資訊...
Django Ninja 教學 13:回應(一)Django Ninja 處理回應概論
September 25, 2024
原文連結 2024 iThome 鐵人賽 這一篇要正式進入「 HTTP 回應 」環節,也就是第三小節。 本節將透過 4 篇文章,介紹 Django Ninja 如何處理 HTTP 回應 : 卷 13:回應(一)Django Ninja 處理回應概論 卷 14:回應(二)Nested Response 卷...
Django Ninja 教學 12:請求(四)Request Body 與 Schema 介紹
September 24, 2024
原文連結 2024 iThome 鐵人賽 經過前幾篇的介紹,我們已經學習了如何處理路徑與查詢參數。但在現實世界中,我們往往還需要處理 更複雜的請求資料 。 比如用戶提交的表單、上傳的檔案等等。對於 API 而言,最常見的就是 JSON 格式的 request body 。 這一篇將探討 Django Ninja...
Django Ninja 教學 11:請求(三)查詢參數(Query Parameters)
September 23, 2024
原文連結 2024 iThome 鐵人賽 上一篇我們討論了,請求 URL 中關於 路徑參數 的處理方式。 本文將介紹 查詢參數(query parameters) ,這是 RESTful API 中用來傳遞 過濾條件 等 額外資訊 的重要部分。 處理查詢參數在 Django Ninja...
訂戶限定 04:待業週記(一)Cake 職涯博覽會
September 22, 2024
平凡的日子與充實的生活,還有寫作地獄
Django Ninja 教學 10:請求(二)路徑參數(Path Parameters)
September 22, 2024
原文連結 2024 iThome 鐵人賽 上一篇文章中,我們介紹了 Django Ninja 如何處理 HTTP 請求,並強調了它與 Python type hints 之間的緊密結合。 本篇將探討 Django Ninja 中, 路徑參數( path parameters ) 的應用與細節,這在處理 HTTP...
Django Ninja 教學 09:Django Ninja 處理請求概論(兼論 FBVs)
September 21, 2024
原文連結 2024 iThome 鐵人賽 歡迎來到第三章第二節! 作為 API 的核心邏輯實現, view 函式 無疑是 Django Ninja API 的靈魂所在。 Django Ninja 和 FastAPI、Flask 一樣,都是以 Function-Based Views( 以下簡稱 FBVs...
Django Ninja 教學 08:路由(下)Django Ninja 路由
September 20, 2024
原文連結 2024 iThome 鐵人賽 上一篇文章中,我們介紹了 Django 傳統的路由設定方式。 如前所述,雖然有一個「路由清單」確實不錯。但隨著專案規模的擴大, 不斷來回切換 urls.py 和 views.py 將大幅增加開發者的認知負擔——不僅增加開發時間,還容易導致錯誤。 Django Ninja...
Django Ninja 教學 07:路由(上)傳統 Django 路由做法(兼章節概論)
September 19, 2024
原文連結 2024 iThome 鐵人賽 第三章是全系列的重頭戲,因為我們要介紹 Django Ninja 的 核心部分——API 。 我把本章分成了三個小節: 第一節:路由。 第二節:請求。 第三節:回應。 第三章也是 唯一 有區分小節的篇章。 現在我們進入第一節—— 路由 。讓我們先了解一下本節的學習重點。...
Django Ninja 教學 06:環境設定 × 如何使用本專案
September 18, 2024
原文連結 2024 iThome 鐵人賽 前一篇我們了解了整個專案所使用的 Python 開發工具。 本文將帶領你一步步完成,有關範例專案的環境設定: 從安裝 Python、Poetry、clone 專案至本地、建立 Python 虛擬環境,到成功啟動 Django 。...
Newer archives
Older archives