iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Software Development

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

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

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

[Day 21] 日誌系統 (二):操作預設的 Uvicorn logger

延續昨天的內容,我們雖然成功的建立了自己的 log,但是我們自訂的 log 和預設的 log 都會顯示在 terminal,造成畫面很亂 謎之音:主辦單位要不...

2023-10-04 ‧ 由 ck642509 分享
DAY 22

[Day 22] 日誌系統 (三):Loguru

除了 Python 內建的 logging 之外,其實還有很多 log 套件可以選擇,例如: Loguru Structlog Logbook...

2023-10-05 ‧ 由 ck642509 分享
DAY 23

[Day 23] 日誌系統 (四):在 Middleware 紀錄 Log 吧

今天來個大整合,把之前的錯誤處理也整合進來。 之前在 [Day 19] 有提到,為了讓程式碼更簡潔,同時又要針對「可預期錯誤」和「非預期錯誤錯誤」進行錯誤處理,...

2023-10-06 ‧ 由 ck642509 分享
DAY 24

[Day 24] 日誌系統 (五):用 traceback 取得更完整訊息

昨天礙於時間緊迫,只好把再進一步優化的內容放到今天討論。 回顧一下主程式 昨天我們為了方便管理 log,我們把錯誤處理和 log 都放到了 middleware...

2023-10-07 ‧ 由 ck642509 分享
DAY 25

[Day 25] 好用的測試模組:Pytest

今天來聊聊簡單的主題 ── 測試 API 測試 這邊我們就直接來看看怎麼測試 FastAPI 的 API。 首先,要先安裝 pytest 和 httpx pip...

2023-10-08 ‧ 由 ck642509 分享
DAY 26

[Day 26] 把 FastAPI 部屬在 render

介紹了 FastAPI 各種功能之後,總是要知道該怎麼部屬才能實際運用,因此,今天來介紹怎麼部屬 FastAPI。 部屬的做法們 最常見的做法,就是找一個雲端平...

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

[Day 27] 背景任務 Background Task

剩下最後幾天了,接下來應該都會挑一些小主題來介紹,今天先從背景任務開始吧~ 也有人翻作「後台任務」 什麼是背景任務? 這邊指的背景任務,簡單來說就是在 Fa...

2023-10-10 ‧ 由 ck642509 分享
DAY 28

[Day 28] WebSocket 的實作與測試

昨天我們在背景任務提到了「如何讓前端知道背景任務完成」這個議題,有提到可以使用 WebSocket,今天就讓我們來看看該怎麼做。 WebSocket 極簡化懶人...

2023-10-11 ‧ 由 ck642509 分享
DAY 29

[Day 29] 定時任務與健康狀態檢查

最後想了想,決定來介紹一下怎麼寫「定時任務」和「健康狀態檢查 (health check)」這兩個小主題~ health check 翻成中文好不習慣......

2023-10-12 ‧ 由 ck642509 分享
DAY 30

[Day 30] 文章回顧與完賽心得

終於完賽了!努力好久終於到今天了,終於不用每天晚上趕在 12 點前生出文章了~ 回顧 在這三十天,我們在最一開始的基礎中,介紹了 API 的路由和管理:[Day...

2023-10-13 ‧ 由 ck642509 分享