Mediumsqlalchemy
Что такое SQLAlchemy?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
SQLAlchemy — Python ORM и SQL toolkit. Два режима: Core (SQL Expression Language, типобезопасный SQL builder) и ORM (high-level, объекты-модели). Modern (2.0+) стиль:
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session
from sqlalchemy import select, String
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(100))
# 2.0+ select style
stmt = select(User).where(User.name == 'Alice')
with Session(engine) as session:
user = session.scalars(stmt).first()AsyncSessionдля asyncio;relationship(),ForeignKey;- Eager loading:
selectinload,joinedload(аналог select_related/prefetch_related); - Alembic — миграции;
- Преимущества над Django ORM: explicit, гибкий, raw SQL когда нужно;
- Альтернативы: Tortoise ORM (async), Peewee (лёгкий), SQLModel (SQLAlchemy + Pydantic).
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.