/
outthevoid
/
python_microblogging_service_project
Обзор
Документация
Войти
/
outthevoid
/
python_microblogging_service_project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/database/base.py
45 строк
2 KB
VladimirChukavin
Revert "Вернул проект в исходное состояние."
07 апр 2026, 14:01
07 апр 2026, 14:01
7531b60
Код
Авторство
О чём код?
from sqlalchemy import MetaData from sqlalchemy.orm import DeclarativeBase, declared_attr convention = { "ix": "ix_%(column_0_label)s", "uq": "uq_%(table_name)s_%(column_0_name)s", "ck": "ck_%(table_name)s_%(constraint_name)s", "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s", "pk": "pk_%(table_name)s", } class Base(DeclarativeBase): """ Базовый абстрактный класс для всех ORM-моделей приложения. Класс задаёт общее поведение декларативных моделей SQLAlchemy, включая единое соглашение об именовании ограничений и автоматическое формирование имени таблицы на основе имени класса. :ivar metadata: Метаданные SQLAlchemy с соглашением об именовании. :vartype metadata: sqlalchemy.MetaData """ __abstract__ = True metadata = MetaData(naming_convention=convention) @declared_attr.directive def __tablename__(cls) -> str: """ Формирует имя таблицы на основе имени класса модели. Имя класса приводится к нижнему регистру, после чего к нему добавляется суффикс ``s``. :param cls: Класс ORM-модели. :type cls: type :returns: Имя таблицы для модели. :rtype: str """ name = cls.__name__.lower() return f"{name}s"