Функция 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,
которая создает объект таблицы