fastapi tortoise 连接mysql配置
时间: 2024-12-24 16:07:09 浏览: 7
FastAPI是一个轻量级的Web框架,而Tortoise ORM是一个Python持久化工具,它允许你轻松地与多种数据库系统交互,包括MySQL。连接MySQL并使用Tortoise ORM进行配置通常涉及以下几个步骤:
1. **安装依赖**:
首先,你需要通过`pip`安装FastAPI、Uvicorn作为服务器以及Tortoise ORM和Tortoise-MySQL驱动:
```
pip install fastapi uvicorn tortoise-orm tortoise-sqlite[alembic]
```
2. **设置环境变量**:
确保你的环境中有一个`DATABASE_URL`,这是Tortoise ORM用于连接数据库的关键。对于MySQL,它通常是这样的格式:
```shell
DATABASE_URL=mysql://username:password@localhost/dbname?charset=utf8mb4&autocommit=True
```
将`username`、`password`替换为你的MySQL用户名和密码,`localhost`替换成实际的主机名,`dbname`替换为你想要连接的数据库名称。
3. **配置文件**:
在`main.py`或项目的配置文件中,添加Tortoise的相关配置:
```python
from tortoise import Tortoise
# 初始化数据库连接
async def on_startup():
await Tortoise.init(
db_url=DATABASE_URL,
modules={'models': ['your_app_name.models']}
)
# 在启动FastAPI应用时执行初始化
app = FastAPI()
app.add_event_handler('startup', on_startup)
```
这里`your_app_name.models`是指存放模型定义的模块路径。
4. **定义模型**:
在`models.py`文件中,创建对应的数据库实体(表结构):
```python
from tortoise import fields, models
class YourModel(models.Model):
field1 = fields.CharField(max_length=100)
field2 = fields.IntField()
```
5. **迁移数据库**:
如果数据库不存在或者表结构需要更新,你可以使用Alembic(如果已安装)进行数据迁移:
```
alembic upgrade head
```
6. **使用ORM**:
在FastAPI路由中,你可以像操作常规Python对象一样操作数据库记录:
```python
@app.get("/items/{item_id}")
async def read_item(item_id: int):
your_model = await YourModel.objects.get(id=item_id)
return your_model
```
阅读全文