🔖 Справочник блока SQLAlchemy

Установка и подключение

Команда / КодОписание
pip install sqlalchemyУстановка SQLAlchemy
pip install pymysqlДрайвер для MySQL
create_engine(url)Создание движка подключения
Base.metadata.create_all(engine)Создание всех таблиц в БД

Модели

КодОписание
declarative_base()Создание базового класса для моделей
class Model(Base)Определение модели (таблицы)
__tablename__ = 'name'Имя таблицы в БД
Column(Integer, primary_key=True)Первичный ключ
Column(String(50), nullable=False)Строка, обязательное поле
Column(Numeric(10,2))Числовое поле с фиксированной точностью
ForeignKey('table.id')Внешний ключ
relationship("Model", back_populates="attr")Связь ORM

Сессия

КодОписание
sessionmaker(bind=engine)Фабрика сессий
session = Session()Создание сессии
session.add(obj)Добавить объект в сессию
session.add_all([...])Добавить несколько объектов
session.commit()Зафиксировать изменения в БД
session.rollback()Откатить незафиксированные изменения
session.delete(obj)Пометить объект на удаление
session.close()Закрыть сессию

Запросы (Query API)

КодОписание
session.query(Model).all()Все записи
session.query(Model).get(pk)По первичному ключу
.filter(Model.field == val)WHERE условие
.filter_by(field=val)WHERE (именованные аргументы)
.order_by(Model.field)Сортировка ASC
.order_by(desc(Model.field))Сортировка DESC
.group_by(Model.field)GROUP BY
.having(condition)HAVING (после GROUP BY)
.join(Model2)INNER JOIN
.outerjoin(Model2)LEFT OUTER JOIN
.subquery()Создать подзапрос
.first()Первый результат или None
.one()Ровно один; исключение при 0 или 2+
.scalar()Первое значение первой строки

Агрегирующие функции (func)

ФункцияSQLОписание
func.count(col)COUNTКоличество записей
func.sum(col)SUMСумма значений
func.avg(col)AVGСреднее значение
func.max(col)MAXМаксимальное значение
func.min(col)MINМинимальное значение

Выражения фильтрации

МетодSQLПример
.like('A%')LIKEИмена, начинающиеся на A
.between(2, 4)BETWEENid от 2 до 4
.in_(list)INЗначение из списка
and_(...)ANDНесколько условий AND
or_(...)ORОдно из условий OR
not_(...)NOTОтрицание условия

Git — ветки для задания

КомандаОписание
git checkout -b lesson/08-summary-2Создать ветку
git add .Добавить файлы
git commit -m "feat: урок 08"Коммит