Атрибут columns класса Table
Атрибут columns класса Table возвращает
коллекцию колонок, из которых состоит таблица.
Коллекция имеет тип ColumnCollection и позволяет
обращаться к колонкам по имени или по индексу,
а также перебирать их в цикле. Атрибут доступен
только для чтения.
Синтаксис
table.columns
Пример
Давайте создадим таблицу articles и выведем
ее колонки:
from sqlalchemy import Table, Column, Integer, String, MetaData
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(articles.columns)
Результат выполнения кода:
"ColumnCollection('articles', 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>))"
Пример
Давайте обратимся к отдельной колонке по имени:
from sqlalchemy import Table, Column, Integer, String, MetaData
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(articles.columns['title'])
print(articles.columns.title)
Результат выполнения кода:
"Column('title', String(), table=<articles>)"
"Column('title', String(), table=<articles>)"
Пример
Давайте переберем все колонки таблицы в цикле и выведем их имена и типы:
from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
Column('text', String),
Column('status', String),
Column('num', Integer)
)
for column in articles.columns:
print(column.name, column.type)
Результат выполнения кода:
"id Integer()"
"title String()"
"text String()"
"status String()"
"num Integer()"
Пример
Давайте получим доступ к колонке по индексу:
from sqlalchemy import Table, Column, Integer, String, MetaData
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(articles.columns[0])
print(articles.columns[1])
Результат выполнения кода:
"Column('id', Integer(), table=<articles>, primary_key=True, nullable=False)"
"Column('title', String(), table=<articles>)"
Смотрите также
-
класс
Table,
который представляет таблицу базы данных -
атрибут
c,
который возвращает коллекцию колонок таблицы -
атрибут
primary_key,
который возвращает первичный ключ таблицы -
метод
append_column,
который добавляет колонку в таблицу