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

Метод connection

Метод connection класса Session возвращает объект Connection, который используется сессией для взаимодействия с базой данных. Метод не принимает обязательных параметров и возвращает соединение, привязанное к текущей транзакции сессии. Если транзакция еще не начата, она будет запущена автоматически. Полученное соединение можно использовать для выполнения низкоуровневых SQL-запросов в обход ORM.

Синтаксис

session.connection()

Пример

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

from sqlalchemy import create_engine from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: conn = session.connection() print(conn)

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

"<sqlalchemy.engine.base.Connection object at 0x...>"

Пример

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

from sqlalchemy import create_engine, text from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: conn = session.connection() res = conn.execute(text('SELECT 1 AS value')) print(res.fetchone())

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

"(1,)"

Пример

Давайте создадим таблицу и вставим данные через соединение сессии, а затем прочитаем их через ORM:

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] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: conn = session.connection() conn.execute(text("INSERT INTO articles (title) VALUES ('article')")) session.commit() article = session.get(Article, 1) print(article.title)

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

"article"

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

  • класс Session,
    который представляет сессию работы с базой данных
  • метод execute,
    который выполняет SQL-запросы через сессию
  • метод get_bind,
    который возвращает привязку соединения для сессии
  • метод commit,
    который фиксирует текущую транзакцию сессии
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить