Атрибут key класса Table
Атрибут key класса Table хранит
строковое имя, под которым таблица зарегистрирована
в коллекции MetaData. По умолчанию значение
key совпадает с именем таблицы, однако его
можно задать явно параметром key при создании
объекта Table. Это бывает полезно, когда
физическое имя таблицы в базе данных отличается от
того идентификатора, по которому вы хотите искать
ее в метаданных.
Синтаксис
table.key
Пример
Давайте создадим таблицу и посмотрим на значение
атрибута key по умолчанию. Поскольку
параметр key не задан, он совпадет
с именем таблицы:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String)
)
print(articles.key)
Результат выполнения кода:
"articles"
Пример
Теперь зададим параметр key явно, чтобы
идентификатор в метаданных отличался от имени
таблицы в базе данных:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
key='articles_key'
)
print(articles.key)
Результат выполнения кода:
"articles_key"
Пример
Атрибут key используется при поиске таблицы
в метаданных через обращение по имени словаря.
Давайте найдем созданную таблицу по ее ключу:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
key='articles_key'
)
found = metadata.tables[articles.key]
print(found.name)
Результат выполнения кода:
"articles"