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

Атрибут tables

Атрибут tables класса MetaData представляет собой объект FacadeDict, который ведет себя как словарь и содержит все таблицы, связанные с данным объектом метаданных. Ключами словаря выступают имена таблиц, а значениями - объекты Table. Атрибут доступен только для чтения и обновляется автоматически при создании новой таблицы через Table или через декларативные модели.

Синтаксис

metadata.tables

Пример

Давайте создадим объект MetaData и одну таблицу, после чего выведем содержимое атрибута tables:

from sqlalchemy import MetaData, Table, Column, Integer, String metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer), ) print(metadata.tables)

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

FacadeDict({'articles': Table('articles', MetaData(), Column('id', Integer(), table=<articles>, primary_key=True, nullable=False), Column('title', String(), table=<articles>), Column('text', String(), table=<articles>), Column('status', String(), table=<articles>), Column('num', Integer(), table=<articles>), schema=None)})

Пример

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

from sqlalchemy import MetaData, Table, Column, Integer, String metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer), ) table = metadata.tables['articles'] for column in table.columns: print(column.name)

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

['id', 'title', 'text', 'status', 'num']

Пример

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

from sqlalchemy import Integer, 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) text: Mapped[str] = mapped_column(String) status: Mapped[str] = mapped_column(String) num: Mapped[int] = mapped_column(Integer) print(list(Base.metadata.tables.keys()))

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

['articles']

Пример

Давайте создадим несколько таблиц и выведем их общее количество через атрибут tables:

from sqlalchemy import MetaData, Table, Column, Integer, String metadata = MetaData() Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) Table( 'users', metadata, Column('id', Integer, primary_key=True), Column('name', String), ) print('Total tables:', len(metadata.tables))

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

"Total tables: 2"

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

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