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

Метод operate

Метод operate класса ColumnElement предназначен для выполнения произвольной бинарной операции над выражением SQLAlchemy. Он принимает в качестве первого параметра объект-оператор, реализующий логику операции, а в качестве второго - операнд, с которым выполняется действие. Метод возвращает новый объект выражения, готовый для использования в запросе.

Синтаксис

operate(op, *other, **kwargs)

Пример

Давайте создадим простое выражение и выполним над ним операцию сложения с помощью метода operate:

from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import DeclarativeBase class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: int = Column(Integer, primary_key=True) title: str = Column(String) num: int = Column(Integer) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) stmt = Article.num.operate(lambda a, b: a + b, 5) print(stmt)

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

"articles.num + :num_1"

Пример

Давайте применим метод operate для объединения строк через оператор конкатенации:

from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import DeclarativeBase class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: int = Column(Integer, primary_key=True) title: str = Column(String) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) stmt = Article.title.operate(lambda a, b: a + b, ' - article') print(stmt)

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

"articles.title || :title_1"

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

  • класс ColumnElement,
    который представляет базовый элемент столбца
  • метод op,
    который создает произвольный оператор
  • метод bool_op,
    который создает булев оператор
  • метод reverse_operate,
    который выполняет обратную бинарную операцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить