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

Атрибут type класса Column

Атрибут type класса Column хранит объект типа данных, который назначен колонке. Этот атрибут доступен только для чтения и возвращает экземпляр класса типа, например Integer, String, Text или Boolean. Тип данных определяет, как значения колонки преобразуются в SQL-типы конкретной СУБД.

Синтаксис

column.type

Пример

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

from sqlalchemy import create_engine, MetaData, Table, Column, Integer engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True) ) print(articles.c.id.type)

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

INTEGER

Пример

Давайте посмотрим тип колонки String с указанной длиной:

from sqlalchemy import create_engine, MetaData, Table, Column, String engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('title', String(100)) ) print(articles.c.title.type)

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

VARCHAR(100)

Пример

Давайте сравним атрибут type с классом типа через isinstance для проверки соответствия:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String(255)) ) print(isinstance(articles.c.id.type, Integer)) print(isinstance(articles.c.title.type, String))

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

True True

Пример

Давайте используем атрибут type вместе с mapped_column в декларативной модели:

from sqlalchemy import create_engine, String, Integer from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column engine = create_engine('sqlite:///:memory:') class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(Integer, primary_key=True) title: Mapped[str] = mapped_column(String(200)) print(Article.__table__.c.id.type) print(Article.__table__.c.title.type)

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

INTEGER VARCHAR(200)

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

  • класс Column,
    который представляет колонку таблицы
  • атрибут key,
    который хранит имя колонки внутри таблицы
  • атрибут name,
    который хранит имя колонки в базе данных
  • атрибут table,
    который ссылается на таблицу колонки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить