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

Метод raw_connection

Метод raw_connection класса Engine возвращает «сырое» соединение с базой данных, то есть объект соединения драйвера СУБД (например, sqlite3.Connection для SQLite или psycopg2.connection для PostgreSQL), а не объект Connection из SQLAlchemy. Этот метод не принимает обязательных параметров и возвращает объект соединения, который необходимо вернуть в пул методом close.

Метод применяется, когда нужно выполнить операцию, недоступную через стандартный интерфейс SQLAlchemy, например, использовать специфичные для драйвера функции или низкоуровневые курсоры.

Синтаксис

raw_connection()

Пример

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

from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:') raw = engine.raw_connection() cursor = raw.cursor() cursor.execute('SELECT 1') res = cursor.fetchone() print(res) cursor.close() raw.close()

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

(1,)

Пример

Давайте с помощью «сырого» соединения создадим таблицу articles и вставим в неё строку:

from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:') raw = engine.raw_connection() cursor = raw.cursor() cursor.execute('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT)') cursor.execute("INSERT INTO articles (title) VALUES ('article')") raw.commit() cursor.execute('SELECT title FROM articles') res = cursor.fetchall() print(res) cursor.close() raw.close()

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

[('article',)]

Пример

Давайте убедимся, что после закрытия «сырого» соединения движок продолжает работать и возвращает новое соединение из пула:

from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:') raw1 = engine.raw_connection() raw1.close() raw2 = engine.raw_connection() cursor = raw2.cursor() cursor.execute('SELECT 1') res = cursor.fetchone() print(res) cursor.close() raw2.close()

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

(1,)

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

  • класс Engine,
    который представляет движок базы данных
  • метод connect,
    который открывает соединение SQLAlchemy
  • метод dispose,
    который закрывает пул соединений движка
  • атрибут pool,
    который хранит пул соединений движка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить