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

Поле Boolean

Поле Boolean представляет логический тип данных и хранит значения True или False. Параметр create_constraint включает проверочное ограничение CHECK на уровне базы данных, параметр name задает имя этого ограничения, а параметр nullable определяет, допускает ли колонка значение NULL.

Синтаксис

Boolean(create_constraint=False, name=None, nullable=True)

Пример

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

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

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

"BOOLEAN"

Пример

Давайте вставим запись со значением True и прочитаем ее обратно:

from sqlalchemy import create_engine, Boolean, Integer, String, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(Integer, primary_key=True) title: Mapped[str] = mapped_column(String) status: Mapped[bool] = mapped_column(Boolean) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article', status=True) session.add(article) session.commit() res = session.scalars(select(Article)).all() print(res[0].status)

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

"True"

Пример

Давайте включим проверочное ограничение параметром create_constraint:

<+python+> from sqlalchemy import create_engine, Boolean, Integer, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(Integer, primary_key=True) title: Mapped[str] = mapped_column(String) status: Mapped[bool] = mapped_column( Boolean(create_constraint=True, name='status_check') ) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) print(Article.__table__.c.status.type.create_constraint) <-python+>

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

"True"

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

  • поле Integer,
    которое хранит целые числа
  • поле String,
    которое хранит строки
  • поле Enum,
    которое хранит одно значение из набора
  • поле DateTime,
    которое хранит дату и время
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить