Code and Me
Archives
Search...
Subscribe
Django Ninja 教學 27:資料查詢與過濾(下)FilterSchema 多欄位查詢
October 9, 2024
原文連結 2024 iThome 鐵人賽 上篇中,我們學習了 Django ORM 的 Q 物件和 Django Ninja 的 FilterSchema,但後者感覺只學了一半。 討論比較多的是,view 函式中使用 FilterSchema 的 參數定義方式 ——這確實很重要,但這只是 FilterSchema...
Django Ninja 教學 26:資料查詢與過濾(上)FilterSchema 介紹
October 8, 2024
原文連結 2024 iThome 鐵人賽 「 查詢 」是 API 中常見的附加需求,本質上是 對資料的過濾(filtering)與篩選 。 無論是篩選文章、商品,還是查詢用戶, 根據不同條件來過濾資料並獲得結果 ,可說是大部分專案的必備功能。 在 view 函式中,實作查詢 最簡單 的方式,就是使用 Django...
Django Ninja 教學 25:分頁(下)自定義分頁類別
October 7, 2024
原文連結 2024 iThome 鐵人賽 上一篇我們介紹了 Django Ninja 的內建分頁器,並用它實作了簡單的分頁功能。 雖然內建的 PageNumberPagination 確實方便,但在很多時候,我們仍需要一些 客製化 功能。 為了實現這個目的,你需要 自定義一個分頁類別 。 不過別擔心,這種自定義,...
訂戶限定 06:待業週記(二)失眠症與 AI 輔助思考
October 6, 2024
今晚,你想來點什麼 AI?
Django Ninja 教學 24:分頁(上)Django Ninja 的內建分頁器
October 6, 2024
原文連結 2024 iThome 鐵人賽 分頁( pagination )功能,就算在資料量較少的小型專案,也具有相當的重要性。 沒分頁,API 照樣能運作——只是效能會受到影響,特別是在資料量大的情況下。 當 API 一次回傳大量資料時,不僅會增加伺服器負擔,還可能導致客戶端處理緩慢,甚至出現 超時 或...
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
平凡的日子與充實的生活,還有寫作地獄
Newer archives
Older archives