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

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

Метод configure класса Mapper выполняет финальную настройку маппера. Он связывает пользовательский класс с таблицей базы данных, инициализирует свойства маппера и подготавливает его к использованию в сессии. Метод принимает необязательный параметр **kwargs, в котором можно передать дополнительные опции конфигурации, например primary_key или properties. Обычно метод вызывается автоматически при создании маппера, но бывают случаи, когда нужно вызвать его вручную.

Синтаксис

Mapper.configure(**kwargs)

Пример

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

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String from sqlalchemy.orm import Mapper engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), ) class Article: pass mapper = Mapper(Article, articles) mapper.configure() print(mapper.class_) print(mapper.local_table)

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

<class '__main__.Article'> articles

Пример

Давайте передадим в метод configure дополнительные свойства через параметр properties:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String from sqlalchemy.orm import Mapper engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), ) class Article: pass mapper = Mapper(Article, articles) mapper.configure(properties={ 'title': articles.c.title, 'text': articles.c.text, }) print(list(mapper.attrs.keys()))

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

['id', 'title', 'text']

Пример

Давайте проверим, что повторный вызов configure на уже сконфигурированном маппере не приводит к ошибке:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String from sqlalchemy.orm import Mapper engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) class Article: pass mapper = Mapper(Article, articles) mapper.configure() mapper.configure() print(mapper.configured)

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

True

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

  • класс Mapper,
    который связывает класс с таблицей базы данных
  • атрибут attrs,
    который содержит свойства маппера
  • атрибут local_table,
    который хранит таблицу, связанную с маппером
  • метод get_property,
    который возвращает свойство маппера по имени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить