Метод 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 тестового клиента