Атрибут invalidated
Атрибут invalidated класса Connection возвращает
булево значение, которое показывает, был ли объект
соединения аннулирован. Аннулирование происходит,
когда соединение помечается как недействительное и
не может больше использоваться для выполнения
SQL-запросов. Значение True означает, что
соединение аннулировано, а False - что оно
всё ещё пригодно для работы.
Синтаксис
connection.invalidated
Пример
Давайте создадим соединение и проверим значение
атрибута invalidated сразу после его открытия:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
print(conn.invalidated)
Результат выполнения кода:
False
Пример
Давайте аннулируем соединение методом invalidate
и проверим значение атрибута invalidated:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.invalidate()
print(conn.invalidated)
Результат выполнения кода:
True
Пример
Давайте проверим, что аннулированное соединение не позволяет выполнять SQL-запросы:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.invalidate()
print(conn.invalidated)
try:
conn.execute(text('SELECT 1'))
except Exception as exc:
print(type(exc).__name__)
Результат выполнения кода:
True
"ResourceClosedError"
Смотрите также
-
класс
Connection,
который представляет соединение с базой данных -
метод
invalidate,
который аннулирует текущее соединение -
атрибут
closed,
который показывает, закрыто ли соединение -
атрибут
engine,
который возвращает движок соединения