成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

FastAPI, 一個神奇的 Python 庫

開發 數據庫
FastAPI 是一個用于構建 API 的現代、快速(高性能)的 web 框架,使用 Python 并基于標準的 Python類型提示。

FastAPI 是一個用于構建 API 的現代、快速(高性能)的 web 框架,使用 Python 并基于標準的 Python類型提示。

安裝

安裝 FastAPI 很簡單,這里我們使用 pip 命令來安裝。

pip install fastapi

另外我們還需要一個 ASGI 服務器,生產環境可以使用 Uvicorn 或者 Hypercorn

pip install uvicorn[standard]

資料:

  • FastAPI 文檔:https://fastapi.tiangolo.com/zh/
  • FastAPI 源碼:https://github.com/tiangolo/fastapi

簡單示例

# main.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

啟動服務:

uvicorn main:app --reload
  • --reload:開發時自動重載(生產環境移除)
  • 訪問:http://localhost:8000

關鍵功能

(1) 路徑參數和查詢參數

  • {user_id}:路徑參數(必須)
  • limit 和 skip:查詢參數(可選,帶默認值)
@app.get("/users/{user_id}")
async def read_user(user_id: int, 
                    limit: int = 10, 
                    skip: int = 0):
  return {"user_id": user_id, "limit": limit, "skip": skip}

(2) 請求體(POST/PUT)

使用 Pydantic 模型驗證數據:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
async def create_item(item: Item):
    return {"item": item.dict()}

(3) 自動文檔

  • Swagger UI:http://localhost:8000/docs
  • ReDoc:http://localhost:8000/redoc

(4) 異步支持

@app.get("/slow-endpoint")
async def slow_operation():
    # 如數據庫查詢
    await some_async_task() 
    return {"status": "done"}

進階功能

(1) 依賴注入

復用代碼邏輯(如認證、數據庫連接)。

from fastapi import Depends

def common_params(q: str = None, skip: int = 0, limit: int = 100):
    return {"q": q, "skip": skip, "limit": limit}

@app.get("/items/")
async def read_items(commons: dict = Depends(common_params)):
    return commons

(2) 中間件

處理請求前/后的邏輯(如 CORS、日志)。

from fastapi.middleware.cors import CORSMiddleware

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_methods=["*"],
)

(3) WebSocket 支持

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"Message: {data}")

(4) 后臺任務

執行無需即時響應的操作(如發送郵件、短信)

from fastapi import BackgroundTasks

def log_task(message: str):
    with open("log.txt", "a") as f:
        f.write(message)

@app.post("/send-email")
async def send_email(background_tasks: BackgroundTasks):
    background_tasks.add_task(log_task, "Email sent")
    return {"status": "ok"}

適用場景

  • 構建高性能 REST API
  • 微服務后端
  • 實時應用(WebSocket)
  • 結合sqlalchemy進行 web 開發
責任編輯:趙寧寧 來源: 程序員老朱
相關推薦

2025-06-04 08:05:00

Peewee?數據庫開發

2025-05-27 08:00:00

Pythonemoji

2025-06-09 07:25:00

filelock數據庫

2025-06-05 08:10:00

PyneconePythonWeb 應用

2025-06-05 10:00:00

GensimPython

2025-05-29 10:00:00

ZODBPython數據庫

2025-06-04 10:05:00

Gooey開源Python

2025-06-10 08:00:00

Pygalpython

2024-04-01 05:00:00

GUIpythonDearPyGui

2025-05-28 08:00:00

Pythonpython-jos開發

2025-06-03 08:30:00

PotteryRedisPython

2014-04-23 11:11:27

Linux下載管理器uGet

2025-06-03 10:00:00

LiteLLMPython

2020-06-08 07:52:31

Python開發工具

2023-01-16 18:16:49

CinnamonLinux桌面環境

2011-11-02 12:38:12

華為華為ARG3

2024-07-02 11:29:28

Typer庫Python命令

2022-07-21 09:50:20

Python日期庫pendulum

2023-11-28 14:22:54

Python音頻

2024-04-10 12:39:08

機器學習python
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人国产精品视频 | 日韩不卡在线观看 | 在线免费观看成年人视频 | av永久免费 | 国产精品黄色 | 国产一区三区视频 | 午夜视频免费在线观看 | 少妇一级淫片免费放播放 | 美女久久久| av手机在线看| 欧美国产91| 91久久精品一区二区二区 | 欧美xxxx性| 国产在线观看一区二区三区 | 岛国av免费在线观看 | 午夜羞羞 | 日本三级电影免费观看 | 美国黄色毛片 | 日韩二区| 精品久久久久久久人人人人传媒 | 国产专区在线 | 伊人狠狠干 | 国产一区 | 亚洲一区二区三区在线播放 | 国产成人免费网站 | 欧美精品网 | 精品国产乱码久久久久久1区2区 | 午夜精品一区二区三区在线观看 | 成人一区在线观看 | 久久一二区 | 国内自拍视频在线观看 | 国产精品免费看 | 成人精品国产一区二区4080 | 色噜噜亚洲男人的天堂 | 亚洲精品一区二区三区在线 | 蜜桃视频在线观看www社区 | 欧美久久精品一级c片 | 成人免费在线小视频 | 99成人 | 全免费a级毛片免费看视频免 | 蜜桃av一区二区三区 |