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

Метод configure класса registry

Метод configure класса registry выполняет настройку реестра декларативных классов. Он позволяет привязать реестр к объекту метаданных MetaData, а также задать дополнительные параметры, такие как словарь аннотаций типов и функция именования ограничений. Первым параметром метод принимает объект метаданных, в котором будут храниться описания таблиц. Вторым необязательным параметром передается словарь дополнительных настроек, например type_annotation_map или constructor.

Синтаксис

registry.configure(metadata, [**kw])

Пример

Давайте создадим реестр и привяжем его к собственному объекту метаданных:

from sqlalchemy import MetaData from sqlalchemy.orm import registry metadata = MetaData() mapper_registry = registry() mapper_registry.configure(metadata=metadata) print(mapper_registry.metadata is metadata)

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

True

Пример

Давайте передадим в метод configure словарь аннотаций типов, чтобы сопоставить тип str с колонкой Text:

from sqlalchemy import MetaData, Text from sqlalchemy.orm import registry, Mapped, mapped_column mapper_registry = registry() mapper_registry.configure( metadata=MetaData(), type_annotation_map={str: Text} ) @mapper_registry.mapped class Article: __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] print(Article.__table__.c.title.type)

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

TEXT

Пример

Давайте настроим реестр с передачей собственного конструктора для создаваемых классов:

from sqlalchemy import MetaData from sqlalchemy.orm import registry, Mapped, mapped_column def custom_constructor(self, **kwargs): for key, value in kwargs.items(): setattr(self, key, value) mapper_registry = registry() mapper_registry.configure( metadata=MetaData(), constructor=custom_constructor ) @mapper_registry.mapped class Article: __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] article = Article(title='article') print(article.title)

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

"article"

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

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