FastAPI + SQLModel + Alembic 项目安装与配置指南
1. 项目基础介绍
本项目是一个基于 FastAPI 的示例项目,它使用异步 SQLAlchemy (通过 SQLModel 进行 ORM 封装),结合 Postgres 数据库、Alembic 进行数据库版本控制和 Docker 容器化。FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,而 SQLModel 提供了 ORM 功能以及 Pydantic 风格的数据模型定义。Alembic 用于管理数据库迁移。本项目适用于希望学习如何结合这些技术构建异步 Web 服务的小白用户。
主要编程语言:Python
2. 关键技术和框架
- FastAPI: 用于构建 API 的现代 Python Web 框架。
- SQLModel: 用于定义数据模型和 ORM 操作的库。
- SQLAlchemy: 强大的 SQL 工具包和对象关系映射(ORM)系统。
- Postgres: 一个功能强大的开源对象关系数据库系统。
- Alembic: 用于数据库版本控制和迁移的工具。
- Docker: 用于容器化应用程序的平台。
3. 安装和配置准备工作
在开始之前,请确保您的系统已安装以下软件:
- Python 3.7 或更高版本
- Docker
- Docker Compose
确保您的系统环境满足以上条件后,可以按照以下步骤进行安装和配置。
安装步骤
-
克隆项目到本地:
git clone https://github.com/testdrivenio/fastapi-sqlmodel-alembic.git cd fastapi-sqlmodel-alembic
-
构建并启动 Docker 容器:
docker-compose up -d --build
这将启动 Postgres 数据库服务和 FastAPI 应用服务。
-
运行数据库迁移:
docker-compose exec web alembic upgrade head
这一步将应用数据库迁移脚本,创建数据库和表结构。
-
检查服务状态:
打开浏览器,访问
http://localhost:8004/ping
,如果看到返回结果,则表示服务运行正常。 -
添加测试数据(可选):
使用
curl
命令添加测试数据到数据库:curl -d '{"name":"测试歌曲", "artist":"测试艺术家", "year":"2021"}' -H "Content-Type: application/json" -X POST http://localhost:8004/songs
-
获取所有歌曲数据:
打开浏览器,访问
http://localhost:8004/songs
,应该能够看到刚才添加的测试数据。
以上步骤就是本项目的基本安装和配置过程。在开发过程中,您可以随时根据需要调整配置和代码。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考