title: FastAPI与SQLAlchemy数据库集成
date: 2025/04/17 15:33:34
updated: 2025/04/17 15:33:34
author: cmdragon
excerpt:
FastAPI与SQLAlchemy的集成通过创建虚拟环境、安装依赖、配置数据库连接、定义数据模型和实现路由来完成。核心模块包括数据库引擎、会话工厂和声明性基类。数据模型通过SQLAlchemy定义,路由通过FastAPI实现,支持创建和查询用户。测试接口通过curl命令进行,常见报错包括表不存在、请求体验证错误和会话不可用。高级配置涉及连接池优化和单元测试。
categories:
- 后端开发
- FastAPI
tags:
- FastAPI
- SQLAlchemy
- 数据库集成
- 依赖注入
- 数据模型
- 错误处理
- 单元测试


扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长
探索数千个预构建的 AI 应用,开启你的下一个伟大创意
1. FastAPI与SQLAlchemy同步数据库集成实战
1.1 项目初始化与依赖安装
在项目根目录执行以下命令创建虚拟环境并安装依赖:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate.bat # Windows
pip install fastapi sqlalchemy uvicorn
1.2 数据库配置核心模块
创建database.py
文件:
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 数据库连接配置(使用SQLite示例)
SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db"
# 创建数据库引擎(关闭SQLite连接池检查)
engine = create_engine(
SQLALCHEMY_DATABASE_URL,
connect_args={
"check_same_thread": False}
)
# 会话工厂(关闭自动提交,启用自动刷新)
SessionLocal = sessionmaker(
autocommit=False,
autoflush=False,
bind=engine
)
# 声明性基类
Base = declarative_base()
def get_db():
"""数据库会话依赖生成器"""
db = SessionLocal()
try:
yield db
finally:
db.close()
1.3 数据模型定义
创建models.py
文件:
from sqlalchemy import Column, Integer, String