Как FastAPI интегрируется с SQLAlchemy для подключения к базе данных и ORM?
Вопрос освещает взаимодействие FastAPI с SQLAlchemy для подключения к базе данных и работы с ORM.
Короткий ответ
FastAPI использует SQLAlchemy для создания моделей базы данных и ORM, а зависимости (dependencies) обеспечивают управление сеансами работы с базой данных.
Длинный ответ
FastAPI поддерживает интеграцию с SQLAlchemy для управления базами данных:
- Создание моделей: SQLAlchemy используется для описания структуры таблиц базы данных.
- Проверка данных: Pydantic модели обеспечивают валидацию данных при запросах и ответах.
- Управление соединением: Через зависимости создается и закрывается сеанс базы данных для каждого запроса.
Пример:
from sqlalchemy.orm import Session
from fastapi import Depends, FastAPI
from .database import SessionLocal, Base
app = FastAPI()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.get("/users/")
def read_users(db: Session = Depends(get_db)):
return db.query(User).all()
Когда использовать:
- Для управления сложными данными в реляционных базах.