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

Метод session_transaction

Метод session_transaction применяется к объекту FlaskClient, который создаётся через метод test_client приложения Flask. Метод возвращает контекстный менеджер, внутри блока with которого можно читать и изменять данные сессии. Параметров метод не принимает.

Изменения, внесённые внутри контекстного менеджера, сохраняются в cookie клиента после выхода из блока with. Это позволяет подготовить сессию перед выполнением тестового запроса.

Синтаксис

with client.session_transaction() as session: session['key'] = 'value'

Пример

Давайте установим значение в сессию перед запросом:

from flask import Flask, session app = Flask(__name__) app.secret_key = 'abcde' @app.route('/') def index(): return session.get('user', 'guest') client = app.test_client() with client.session_transaction() as sess: sess['user'] = 'abcde' res = client.get('/') print(res.get_data(as_text=True))

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

"abcde"

Пример

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

from flask import Flask, session app = Flask(__name__) app.secret_key = 'abcde' @app.route('/') def index(): session['user'] = 'hello' return 'ok' client = app.test_client() client.get('/') with client.session_transaction() as sess: res = sess['user'] print(res)

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

"hello"

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

  • класс FlaskClient,
    который используется для тестирования приложения
  • метод get,
    который выполняет GET-запрос к приложению
  • метод post,
    который выполняет POST-запрос к приложению
  • атрибут cookie_jar,
    который хранит cookie тестового клиента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить