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

Метод remove класса scoped_session

Метод remove класса scoped_session удаляет текущую сессию из реестра и закрывает ее. После вызова этого метода следующий доступ к реестру создаст новую сессию. Метод не принимает параметров и не возвращает значения. Обычно используется для освобождения ресурсов после завершения работы с базой данных в рамках определенного потока или контекста.

Синтаксис

scoped_session.remove()

Пример

Давайте создадим реестр scoped_session, получим сессию и затем удалим ее методом remove:

from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, scoped_session engine = create_engine('sqlite:///:memory:') Session = sessionmaker(bind=engine) scoped = scoped_session(Session) session = scoped() print(session) scoped.remove() print(scoped.registry.has())

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

<sqlalchemy.orm.session.Session object at 0x...> False

Пример

Давайте убедимся, что после вызова remove следующий доступ к реестру создает новую сессию:

from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, scoped_session engine = create_engine('sqlite:///:memory:') Session = sessionmaker(bind=engine) scoped = scoped_session(Session) first = scoped() scoped.remove() second = scoped() print(first is second)

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

False

Пример

Давайте создадим таблицу, добавим запись через сессию реестра, а затем вызовем remove для закрытия сессии:

from sqlalchemy import create_engine, text from sqlalchemy.orm import sessionmaker, scoped_session engine = create_engine('sqlite:///:memory:') with engine.begin() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT)')) Session = sessionmaker(bind=engine) scoped = scoped_session(Session) session = scoped() session.execute(text("INSERT INTO articles (title) VALUES ('article')")) session.commit() scoped.remove() with engine.connect() as conn: res = conn.execute(text('SELECT title FROM articles')).fetchall() print(res)

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

[('article',)]

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

  • класс scoped_session,
    который создает реестр сессий
  • метод configure,
    который настраивает параметры реестра
  • метод query,
    который создает запрос через сессию реестра
  • метод remove,
    который удаляет текущую сессию из реестра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить