FastAPI与Tortoise ORM整合实战教程
项目概述
本教程基于GitHub上的开源项目 fastapi-tortoise,旨在指导您如何快速上手一个结合了FastAPI框架和Tortoise ORM(对象关系映射)的Web应用。该项目展示了如何在FastAPI中高效地使用Tortoise ORM进行数据库操作,是构建RESTful API的理想实践。
1. 项目目录结构及介绍
fastapi-tortoise
│── app # 应用核心代码
│ ├── models.py # 定义ORM模型
│ ├── routes.py # FastAPI路由定义
│ └── schemas.py # 请求和响应数据的Pydantic模型定义
│
├── config.py # 配置文件,包含数据库连接等配置
│
├── main.py # 项目入口,启动FastAPI服务
│
├── requirements.txt # 项目所需依赖列表
│
└── README.md # 项目说明文档
- app/models.py: 包含了利用Tortoise ORM定义的数据模型。
- app/routes.py: 实现了API端点,处理业务逻辑与请求响应。
- app/schemas.py: 使用Pydantic定义输入输出数据结构。
- config.py: 配置文件,存储数据库连接字符串及其他环境特定配置。
- main.py: 启动程序,初始化FastAPI实例并配置中间件、路由等。
- requirements.txt: 记录所有必需的Python包及其版本。
2. 项目的启动文件介绍
main.py 项目的主要入口点,负责设置FastAPI的基本架构。关键步骤包括:
- 引入FastAPI库并创建一个FastAPI实例。
- 从
config.py
导入配置以设置数据库连接。 - 初始化Tortoise ORM,与数据库建立连接,通常通过调用
tortoise.init_db()
函数完成。 - 导入并注册应用的所有路由,这是通过引入
app.routes
模块并将其添加到FastAPI的应用中实现的。 - 运行FastAPI服务器,监听指定端口,例如使用
uvicorn.run(app, host="localhost", port=8000)
。
3. 项目的配置文件介绍
config.py 配置文件用于集中管理项目运行时的环境变量和设置,特别是数据库连接信息至关重要。一般结构包括:
DB_URL = "sqlite:///:memory:" # 示例数据库URL,生产环境中应指向实际数据库路径或服务
DB_MODULES = ["app.models"] # 指定包含ORM模型的模块路径
def get_settings():
settings = Settings()
settings.db_url = DB_URL
settings.db_modules = DB_MODULES
return settings
- DB_URL: 数据源URL,可以是SQLite、MySQL、PostgreSQL等,这里示例为内存中的SQLite数据库。
- DB_MODULES: 用来告诉Tortoise ORM你的数据模型在哪里,以便自动发现和管理表结构。
get_settings()
函数是为了便于不同的环境加载不同的配置,提升代码的可维护性和灵活性。
通过以上三个关键部分的了解,您可以更有效地学习和运用此开源项目,搭建起自己的FastAPI+Tortoise ORM应用。