Класс Column
Класс Column представляет собой описание
отдельного столбца таблицы базы данных. Он
используется при декларативном или классическом
определении моделей и хранит информацию об имени
столбца, его типе, ограничениях и значениях по
умолчанию. Первым параметром передается имя
столбца в базе данных, вторым - тип данных
(например, Integer или String).
Дополнительными параметрами задаются флаги
primary_key, nullable, unique,
index, default и другие.
Синтаксис
Column(name, type_, [primary_key], [nullable], [unique], [index], [default])
Пример
Давайте опишем простую таблицу articles
с помощью класса Column в декларативном
стиле:
from sqlalchemy import create_engine, Column, Integer, String, MetaData, Table
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String, nullable=False),
Column('text', String),
Column('status', String),
Column('num', Integer)
)
print(articles.c.keys())
Результат выполнения кода:
['id', 'title', 'text', 'status', 'num']
Пример
Давайте создадим таблицу в базе данных и вставим в нее строку, чтобы убедиться, что столбцы работают корректно:
from sqlalchemy import create_engine, Column, Integer, String, MetaData, Table
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
Column('text', String),
Column('status', String),
Column('num', Integer)
)
metadata.create_all(engine)
with engine.connect() as conn:
conn.execute(
articles.insert().values(
title='article',
text='some text',
status='draft',
num=1
)
)
res = conn.execute(articles.select()).fetchall()
print(res)
Результат выполнения кода:
[(1, 'article', 'some text', 'draft', 1)]
Пример
Давайте обратимся к атрибутам столбца Column
и выведем его имя, тип и признак первичного ключа:
from sqlalchemy import Column, Integer, String
col = Column('title', String(100), nullable=False)
print(col.name)
print(col.type)
print(col.nullable)
print(col.primary_key)
Результат выполнения кода:
"title"
VARCHAR(100)
False
False
Смотрите также
-
класс
Column,
который описывает столбец таблицы -
атрибут
name,
который хранит имя столбца -
атрибут
type,
который хранит тип данных столбца -
атрибут
primary_key,
который указывает, является ли столбец первичным ключом