РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
191 of 711 menu

Метод generate_base

Метод generate_base класса registry создает базовый класс для декларативных моделей. Первым параметром метод принимает имя будущего класса базы. Через именованные параметры metadata и class_registry можно передать собственный объект метаданных и словарь реестра классов. Метод возвращает новый класс, от которого наследуются все модели приложения.

Синтаксис

registry.generate_base([name], [metadata], [class_registry])

Пример

Давайте создадим реестр и сгенерируем декларативную базу с именем Base:

from sqlalchemy.orm import registry mapper_registry = registry() Base = mapper_registry.generate_base() print(Base)

Результат выполнения кода:

"<class 'sqlalchemy.orm.decl_api.Base'>"

Пример

Давайте определим модель Article на основе сгенерированной базы:

from sqlalchemy.orm import registry, Mapped, mapped_column mapper_registry = registry() Base = mapper_registry.generate_base() class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] print(Article.__tablename__) print(Article.__mapper__.primary_key)

Результат выполнения кода:

"articles" "(Column('id', Integer(), table=<articles>, primary_key=True, nullable=False),)"

Пример

Давайте передадим собственный объект MetaData через именованный параметр metadata:

from sqlalchemy import MetaData from sqlalchemy.orm import registry, Mapped, mapped_column my_metadata = MetaData() mapper_registry = registry() Base = mapper_registry.generate_base(metadata=my_metadata) class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] print(Base.metadata is my_metadata) print(list(my_metadata.tables))

Результат выполнения кода:

True ['articles']

Смотрите также

  • класс registry,
    который хранит реестр декларативных моделей
  • метод configure,
    который настраивает маппинг после объявления моделей
  • метод map_imperatively,
    который связывает класс с таблицей императивно
  • атрибут metadata,
    который хранит коллекцию таблиц реестра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить