fastapi orm对接mysql
时间: 2024-08-12 11:05:48 浏览: 100
FastAPI是一个轻量级的Web框架,它本身并不直接提供ORM(Object-Relational Mapping,对象关系映射)功能。然而,你可以选择与FastAPI结合使用的第三方库,如SQLAlchemy或Peewee等,它们都支持ORM,可以方便地操作MySQL数据库。
以SQLAlchemy为例,它是Python中最常用的ORM工具之一,用于在Python应用中轻松处理数据库操作。以下是使用SQLAlchemy和FastAPI对接MySQL的一般步骤:
1. 安装依赖:首先安装`sqlalchemy`, `fastapi`, 和 `asyncio-sqlalchemy`(如果你的应用基于异步I/O)。
```bash
pip install sqlalchemy fastapi uvicorn[standard]
```
2. 配置数据库连接:在你的FastAPI项目中设置数据库连接配置,比如通过环境变量或配置文件。
```python
from sqlalchemy import create_engine
DATABASE_URL = "postgresql://username:password@localhost/dbname"
engine = create_engine(DATABASE_URL)
```
3. 创建数据模型:定义代表数据库表的Python类,这将自动创建相应的数据库表格。
```python
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String, unique=True)
```
4. ORM映射到路由:使用FastAPI的`Depends`函数获取数据库连接,并在需要的地方使用SQLAlchemy进行查询、插入、更新和删除操作。
```python
from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session
app = FastAPI()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.get("/users")
async def read_users(db: Session = Depends(get_db)):
return db.query(User).all()
```
阅读全文