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

Функция text

Функция text создает объект текстового SQL-запроса, который затем можно выполнить через соединение или сессию. Первым параметром функция принимает строку с SQL-запросом. Дополнительно можно передать параметры для безопасной подстановки значений.

Синтаксис

text(sql, [bindparams])

Пример

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

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.execute(text('SELECT 1')) print(res.fetchone())

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

(1,)

Пример

Давайте передадим параметры в запрос через двоеточие:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute( text('INSERT INTO articles (id, title) VALUES (:id, :title)'), {'id': 1, 'title': 'article'} ) res = conn.execute(text('SELECT title FROM articles WHERE id = :id'), {'id': 1}) print(res.fetchone())

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

('article',)

Пример

Давайте выполним текстовый запрос через сессию с моделями:

from sqlalchemy import create_engine, text from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] text: Mapped[str] status: Mapped[str] num: Mapped[int] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: session.add(Article(id=1, title='article', text='sql', status='active', num=10)) session.commit() res = session.execute(text('SELECT title, num FROM articles WHERE status = :status'), {'status': 'active'}) print(res.fetchall())

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

[('article', 10)]

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

  • функцию bindparam,
    которая создает именованный параметр привязки
  • функцию literal_column,
    которая представляет SQL-выражение как колонку
  • функцию column,
    которая создает объект колонки таблицы
  • функцию table,
    которая создает объект таблицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить