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

Атрибут local_table класса Mapper

Атрибут local_table класса Mapper возвращает объект Table, который был передан при настройке отображения класса. Этот атрибут указывает на локальную таблицу, с которой связан маппер, и позволяет получить доступ к ее колонкам, имени и метаданным.

Атрибут local_table особенно полезен, когда нужно программно получить информацию о таблице, связанной с классом, без необходимости хранить ссылку на объект Table отдельно.

Синтаксис

mapper.local_table

Пример

Давайте создадим модель и получим таблицу через атрибут local_table:

from sqlalchemy import create_engine, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String(100)) table = Article.__mapper__.local_table print(table) print(table.name)

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

Table('articles', MetaData(), Column('id', Integer(), table=<articles>, primary_key=True, nullable=False), Column('title', String(length=100), table=<articles>, nullable=False), schema=None) "articles"

Пример

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

from sqlalchemy import create_engine, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String(100)) text: Mapped[str] = mapped_column(String(500)) table = Article.__mapper__.local_table for column in table.columns: print(column.name)

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

"id" "title" "text"

Пример

Давайте сравним local_table с объектом Table, хранящимся в метаданных:

from sqlalchemy import create_engine, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String(100)) local = Article.__mapper__.local_table from_metadata = Article.metadata.tables['articles'] print(local is from_metadata)

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

True

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

  • класс Mapper,
    который управляет отображением класса на таблицу
  • атрибут columns,
    который хранит коллекцию колонок маппера
  • атрибут primary_key,
    который содержит первичный ключ таблицы
  • атрибут persist_selectable,
    который указывает на объект для операций SELECT
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить