iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
佛心分享-IT 人自學之術

Python 學習筆記系列 第 29

筆記Day29:框架三本柱之第三柱 - FastAPI

  • 分享至 

  • xImage
  •  

今天來說說 Python 框架三本柱的第三柱 FastAPI。

什麼是 FastAPI?

FastAPI 在近年來成為熱門框架,不只是因為它夠「快」,還因為它在設計理念上很符合現代 Web 開發需求。

從 API 可以看的出來主要用來開發 API (Application Programming Interface),以下介紹該框架的優勢:

  • 速度較快,效能是三本柱之中最高的。
  • 型別安全,使用 Python 的型別標注(type hints),自動驗證請求參數。
  • 自動產生文件,只要將程式碼寫好,會自動產生Swagger UI
  • 支援非同步設計,適合高併發應用。

三本柱比較

  • Django:功能較全面、內建 ORM、後台管理、適合大型專案。
  • Flask:輕量靈活、需手動處理驗證、文件等部分。
  • FastAPI:介於 Django、Flask 之間,可快速開發 API 並結合自動產生文件與型別驗證。

建立專案

poetry init -n
poetry shell
poetry add fastapi uvicorn

啟動

uvicorn main:app --reload

這邊舉個簡單例子:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def demo():
    return {"message": "hello world."}

@app.get("/items/{item_id}")
def item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}

這時候啟動伺服器後可以使用Swagger UI查看 API 文件,也可透過該文件進行測試,相當方便。

http://127.0.0.1:8000/docs

https://ithelp.ithome.com.tw/upload/images/20250924/20144654TVfKuMV9hB.png

上述有提到 FastAPI 提供了請求驗證,可以透過 Pydantic 進行參數的驗證:
從範例來看當使用者將price欄位內容傳入字串 Str時,FastAPI 會自動回傳錯誤訊息。

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    
@app.post("/items/")
def item(item: Item):
    return item

那麼今天就介紹到這,明天見ㄅㄅ!


上一篇
筆記Day28:框架三本柱之第二柱 - Flask
系列文
Python 學習筆記29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言