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 dbfinally:db.close()
1.3 数据模型定义
创建models.py
文件:
from sqlalchemy import Column, Integer, String