Метод detach класса Connection
Метод detach класса Connection
открепляет текущее соединение от пула
соединений. После вызова этого метода
соединение больше не управляется пулом
и не будет возвращено в него при закрытии.
Метод не принимает параметров и не
возвращает значения.
Это бывает полезно, когда нужно передать соединение во внешнюю систему или продолжить работу с ним после того, как контекстный менеджер завершил свою работу.
Синтаксис
Connection.detach()
Пример
Давайте создадим соединение и открепим его от пула:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
conn = engine.connect()
conn.detach()
print(conn.closed)
conn.close()
Результат выполнения кода:
"False"
Пример
Давайте выполним запрос после открепления соединения:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
conn = engine.connect()
conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)'))
conn.execute(text("INSERT INTO articles (id, title) VALUES (1, 'article')"))
conn.detach()
res = conn.execute(text('SELECT title FROM articles'))
print(res.fetchall())
conn.close()
Результат выполнения кода:
[('article',)]
Смотрите также
-
класс
Connection,
который представляет соединение с базой данных -
метод
close,
который закрывает соединение -
атрибут
closed,
который показывает, закрыто ли соединение -
метод
invalidate,
который помечает соединение как недействительное