FastAPI与SQLAlchemy数据库集成

发布于:2025-04-20 ⋅ 阅读:(54) ⋅ 点赞:(0)

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
  • 数据库集成
  • 依赖注入
  • 数据模型
  • 错误处理
  • 单元测试

cmdragon_cn.png cmdragon_cn.png

扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

探索数千个预构建的 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

网站公告

今日签到

点亮在社区的每一天
去签到