title: FastAPI與SQLAlchemy數據庫集成與CRUD操作
date: 2025/04/16 09:50:57
updated: 2025/04/16 09:50:57
author: cmdragon
excerpt:
FastAPI與SQLAlchemy集成基礎包括環境準備、數據庫連接配置和模型定義。CRUD操作通過數據訪問層封裝和路由層實現,確保線程安全和事務管理。常見錯誤如422請求驗證錯誤通過Pydantic模型和中間件處理。Session生命周期管理依賴注入系統保證每個請求獨立會話。常見報錯如數據庫連接失敗和事務回滾通過檢查服務狀態、驗證連接參數和異常處理解決。
categories:
- 后端開發
- FastAPI
tags:
- FastAPI
- SQLAlchemy
- 數據庫集成
- CRUD操作
- Session管理
- 錯誤處理
- MySQL


掃描二維碼關注或者微信搜一搜:編程智域 前端至全棧交流與成長
探索數千個預構建的 AI 應用,開啟你的下一個偉大創意
1. FastAPI 與 SQLAlchemy 同步數據庫集成基礎
1.1 環境準備與安裝
首先創建虛擬環境并安裝必要依賴:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate.bat # Windows
pip install fastapi uvicorn sqlalchemy pymysql
1.2 數據庫連接配置
在database.py
中配置核心數據庫連接:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmakerSQLALCHEMY_DATABASE_URL = "mysql+pymysql://user:password@localhost/mydatabase"
engine = create_engine(SQLALCHEMY_DATABASE_URL,pool_size=20,max_overflow=0,pool_pre_ping=True
)SessionLocal = sessionmaker(autocommit=False,autoflush=False,bind=engine,expire_on_commit=False
)
1.3 模型定義與關系映射
在models.py
中定義數據模型:
from sqlalchemy import Column, Integer, String
from database import Baseclass User(Base):__tablename__ = "users"id = Column(Integer, primary_key=True, index=True)name = Column(String(50), nullable=False)email = Column(String(100), unique=True)age = Column(Integer, default=18)def __repr__(self):return f"<User(name='{self.name}', email='{