iT邦幫忙

django ninja相關文章
共有 30 則文章
鐵人賽 Python DAY 5

技術 卷 5:Python 現代開發工具介紹

在現代軟體開發中,工具不僅能提高開發效率,還能改善程式碼品質,讓專案的管理與維護變得更加輕鬆。 本文將介紹幾個重要的 Python 開發工具,討論它們在專案中的...

鐵人賽 Python DAY 3

技術 卷 3:Django Ninja 介紹——與 Django REST Framework 主要區別

選擇任何工具之前,我們通常會先了解它能解決的問題,以及是否符合與自己的需求。 本文將介紹 Django Ninja 這個現代化的 API 框架,探討它的起源和主...

鐵人賽 Python DAY 1

技術 卷 1:系列導讀 × 目標讀者

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

鐵人賽 Python DAY 2

技術 卷 2:架構與章節導覽

上一篇中,我們講述了系列的整體方向。現在,我將進一步深入,為你詳細介紹系列的架構與各個章節安排。 可以說,本文就是整個系列的藍圖。 一般而言,架構介紹通常會直接...

鐵人賽 Python DAY 10

技術 卷 10:請求(二)路徑參數 - Path Parameters

上一篇文章中,我們介紹了 Django Ninja 如何處理 HTTP 請求,並強調了它與 Python type hints 之間的緊密結合。 本篇將探討 D...

鐵人賽 Python DAY 7

技術 卷 7:路由(上)傳統 Django 路由做法

第三章是全系列的重頭戲,因為我們要介紹 Django Ninja 的核心部分——API。 我把本章分成了三個小節: 第一節:路由。 第二節:請求。 第三節:回...

鐵人賽 Python DAY 11

技術 卷 11:請求(三)查詢參數 - Query Parameters

上一篇我們討論了,請求 URL 中關於路徑參數的處理方式。 本文將介紹查詢參數(query parameters),這是 RESTful API 中用來傳遞過濾...

鐵人賽 Python DAY 4

技術 卷 4:API 範例專案介紹

在第一章中,我們對 Django Ninja 做了全方位的介紹,並且分析了它與 Django REST Framework 的主要區別。 相信你對 Django...

鐵人賽 Python DAY 8

技術 卷 8:路由(下)Django Ninja 路由設定

上一篇文章中,我們介紹了 Django 傳統的路由設定方式。 如前所述,雖然有一個「路由清單」確實不錯。但隨著專案規模的擴大,不斷來回切換urls.py和vie...

鐵人賽 Python DAY 15

技術 卷 15:回應(三)為何不用 ModelSchema?——相比 DRF,我更偏愛 Django Ninja 的理由

Django API 回應,常常是對 Model 物件(即 db 資料)內容進行一定的篩選與加工。 比如「取得單一文章資訊」API,實際上就是從Post物件挑選...

鐵人賽 Python DAY 6

技術 卷 6:環境設定 × 如何使用本專案

前一篇我們了解了整個專案所使用的 Python 開發工具。 本文將帶領你一步步完成,有關範例專案的環境設定:從安裝 Python、Poetry、clone 專案...

鐵人賽 Python DAY 9

技術 卷 9:請求(一)Django Ninja 處理 HTTP 請求

歡迎來到第三章第二節! 作為 API 的核心邏輯實現,view 函式無疑是 Django Ninja API 的靈魂所在。 Django Ninja 和 Fas...

鐵人賽 Python DAY 13

技術 卷 13:回應(一)Django Ninja 處理 HTTP 回應

這一篇要正式進入「HTTP 回應」環節,也就是第三小節。 本節將透過 4 篇文章,介紹 Django Ninja 如何處理 HTTP 回應: 卷 13:回應(...

鐵人賽 Python DAY 12

技術 卷 12:請求(四)Request Body 與 Schema 介紹

經過前幾篇的介紹,我們已經學習了如何處理路徑與查詢參數。但在現實世界中,我們往往還需要處理更複雜的請求資料。 比如用戶提交的表單、上傳的檔案等等。對於 API...

鐵人賽 Python DAY 19

技術 卷 19:資料驗證(上)Pydantic 單一欄位驗證

資料驗證是 API 開發中的關鍵需求之一,它負責確保從客戶端提交的資料是符合預期的,從而避免潛在的錯誤和安全問題。 有效的資料驗證可以在 API 接收到錯誤資料...

鐵人賽 Python DAY 18

技術 卷 18:API 文件(下)Pydantic Field 設定範例與預設值

上一篇文章中,我們探討了 Django Ninja 影響 API 文件呈現的一些重要設定。它們是自動化 API 文件的基本功,不容忽視。 但這樣還不夠!我們想要...

鐵人賽 Python DAY 21

技術 卷 21:錯誤處理(上)HttpError 與自定義 HTTP 回應

在軟體開發中,錯誤處理是一個不容忽視——但常常被忽視——的環節。 不誇張地說,錯誤處理是一個「做得好沒人誇,做不好系統就慘兮兮」的議題。 沒關係,我們還是盡可能...

鐵人賽 Python DAY 17

技術 卷 17:API 文件(上)Django Ninja 文件實踐指南

「依程式碼自動產生 API 文件」是 Django Ninja 的一大賣點。 事實上,API 文件的自動化,正是我在工作上的專案從 Django REST fr...

鐵人賽 Python DAY 29

技術 卷 29:單元測試——使用 Test Client 與 pytest 測試 API

「請問你們的專案有單元測試嗎?」 面試中如果你提出這個問題,可能會讓面試官面有難色。 測試的重要性,大部分開發者都心知肚明。只是願意認真對待的人未必很多。 但如...

鐵人賽 Python DAY 14

技術 卷 14:回應(二)用 Schema 建立巢狀結構回應

在 API 開發中,我們經常會遇到關聯模型之間的資料需要同時返回的情況。 特別是在處理「一對一」或「一對多」關聯時,多層結構往往是常態。 我們希望以巢狀結構(N...

鐵人賽 Python DAY 24

技術 卷 24:分頁(上)Django Ninja 的內建分頁器

分頁(pagination)功能,就算在資料量較少的小型專案,也具有相當的重要性。 沒分頁,API 照樣能運作——只是效能會受到影響,特別是在資料量大的情況下。...

鐵人賽 Python DAY 28

技術 卷 28:身分認證——Session 認證與全域設定

歡迎來到第七章!本章總共有兩篇內容: 卷 28:身分認證——Session 認證與全域設定 卷 29:單元測試——使用 Test Client 與 pytes...

鐵人賽 Python DAY 30

技術 卷 30:系列回顧與完賽心得

系列最終章,我們的「Django Ninja 探險」將暫時告一段落。 這當然不是結束,畢竟 Django Ninja 還只是一個相對新的專案——我對它的未來充滿...

鐵人賽 Python DAY 23

技術 卷 23:檔案上傳——Django UploadedFile 介紹

現代 Web 服務中,檔案上傳是一個常見的情境。 無論是使用者上傳照片、夾帶附件,檔案上傳都是不可或缺的功能。 本文介紹如何在 Django Ninja 中實現...

鐵人賽 Python DAY 20

技術 卷 20:資料驗證(下)Pydantic 跨欄位驗證

上一篇我們講完了單一欄位的自定義驗證,這篇則要來討論跨欄位之間的驗證。 跨欄位驗證同樣是 API 開發中十分常見的需求,例如註冊帳號時,要保證「密碼」與「確認密...

鐵人賽 Python DAY 27

技術 卷 27:資料查詢與過濾(下)FilterSchema 多欄位查詢

上篇中,我們學習了 Django ORM 的Q物件和 Django Ninja 的 FilterSchema,但後者感覺只學了一半。 討論比較多的是,view...

鐵人賽 Python DAY 26

技術 卷 26:資料查詢與過濾(上)FilterSchema 介紹

「查詢」是 API 中常見的附加需求,本質上是對資料的過濾(filtering)與篩選。 無論是篩選文章、商品,還是查詢用戶,根據不同條件來過濾資料並獲得結果,...

鐵人賽 Python DAY 25

技術 卷 25:分頁(下)自定義分頁類別

上一篇我們介紹了 Django Ninja 的內建分頁器,並用它實作了簡單的分頁功能。 雖然內建的PageNumberPagination確實方便,但在很多時候...

鐵人賽 Python DAY 16

技術 卷 16:回應(四)Resolver 方法——欄位資料格式化

上一篇提到,API 回應常常是對 Django Model 物件內容的篩選與加工——然後 JSON 序列化。 其中「加工」部分,用更專業的說法,大概是「資料格式...

鐵人賽 Python DAY 22

技術 卷 22:錯誤處理(下)全域錯誤處理——使用 Exception Handlers

上一篇文章,我們學習了如何操作HttpError,並建議你只在 view 函式中使用它。 但光是這樣,專案 API 的錯誤處理,還遠遠不夠完善,至少有 3 個常...