iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Software Development

FastAPI 開發筆記:從新手到專家的成長之路 系列

參賽的內容為圍繞著 Python 後端框架 FastAPI,主要是適合已經有 Python 基礎,想學習如何用 fastAPI 架設後端的朋友們。
內容前面半部分主要是基礎與進階的設定,後半則會加入其他後端常搭配的系統,如:資料庫、日誌、JWT認證,並教大家如何在各種需求下做出符合預期的效果。
文章內容大多是我在工作上實際遇到的需求與做法,也很歡迎大家提出不同做法並進行討論。

鐵人鍊成 | 共 30 篇文章 | 10 人訂閱 訂閱系列文 RSS系列文
DAY 11

[Day 11] Middleware 與 CORS

今天來聊聊 middleware,一個非必要,但十分好用的設定。 什麼是 Middleware? 我們直接看這張網路上找到的簡單示意圖 簡單來說,就是在 Fas...

2023-09-24 ‧ 由 ck642509 分享
DAY 12

[Day 12] 登入驗證 (一):Basic Auth

在大多數情況,後端 API 並不會隨便對外開放,需要有足夠的權限才可以訪問,有的只要一般會員就好,有的則是要管理員層級才可以。而辨識身分的方法,就是我們接下來要...

2023-09-25 ‧ 由 ck642509 分享
DAY 13

[Day 13] 登入驗證 (二):JWT

今天來繼續聊登入驗證~ 昨天我們介紹了 Basic Auth,今天接著介紹 JWT 什麼是 JWT? JWT 的全名是 JSON Web Token,與 Bas...

2023-09-26 ‧ 由 ck642509 分享
DAY 14

[Day 14] 資料庫 (一):ORM 與 SQLAlchemy

接下來這幾天讓我們來看一下資料庫的部份~ 儘管這系列主題是 FastAPI,但由於後端通常都會有 DB,而且 SQLAlchemy 套件本身功能也是不少,因此...

2023-09-27 ‧ 由 ck642509 分享
DAY 15

[Day 15] 資料庫 (二):Schema 與 資料庫連線

昨天我們快速地展式怎麼建立空的資料庫,但也大幅簡化了不少東西,今天再來把這部份補充說明一下。 Schema 先前有介紹過,FastAPI 其中一個優點是,它整合...

2023-09-28 ‧ 由 ck642509 分享
DAY 16

[Day 16] 資料庫 (三):增刪查改 CRUD

前兩天都只有建立資料庫,今天開始來操作資料庫~ 版本 在開始之前,先說一下,在今年 1 月,SQLAlchemy 正式發布了 2.0.0 版 (公告連結),語法...

2023-09-29 ‧ 由 ck642509 分享
DAY 17

[Day 17] 資料庫 (四):用 Alembic 做資料庫初始化與 Migration

有時候,我們需要在資料庫內先存放一些基本資料,才比較方便我們後續使用 (或進行測試),這個過程我們就稱為「初始化 (Initialization)」。 建立空...

2023-09-30 ‧ 由 ck642509 分享
DAY 18

[Day 18] 錯誤處理 (一):HTTPException

接下來這幾天來聊聊錯誤處理 在我們開發程式的時候,難免會遇到各種千奇百怪的狀況,很難保證程式一定可以照我們所預期地被執行,有時候是我們開發的問題,有時候則是使用...

2023-10-01 ‧ 由 ck642509 分享
DAY 19

[Day 19] 錯誤處理 (二):流程優化 與 客製化 HTTPException

今天繼續介紹 HTTPException~ 原則上,基於安全考量,我們並不希望 (或甚至可以說不能) 讓前端知道後端的錯誤訊息,這也是為什麼 FastAPI 預...

2023-10-02 ‧ 由 ck642509 分享
DAY 20

[Day 20] 日誌系統 (一):Logging

不知道大家有沒有想過,為什會在啟動 FastAPI 時,terminal 會出現這些訊息 這其實是因為 uvicorn 預設使用了 logging 模組 (Py...

2023-10-03 ‧ 由 ck642509 分享