Класс RequestContext
Класс RequestContext создаётся Flask автоматически
при каждом входящем HTTP-запросе. Он связывает объект
request с текущим потоком выполнения и делает его
доступным через прокси-объект request из модуля
flask. Контекст запроса помещается во внутренний стек
_request_ctx_stack и удаляется после завершения
обработки запроса. Конструктор принимает приложение
app и окружение WSGI environ, а также
необязательный объект request.
Синтаксис
from flask import Flask
app = Flask(__name__)
ctx = app.request_context(environ)
ctx.push()
# работа с request
ctx.pop()
Пример
Давайте получим контекст запроса внутри обработчика и
посмотрим на объект request:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
ctx = request.environ
return request.path
Результат выполнения кода для адреса /:
/
Пример
Давайте вручную создадим контекст запроса через
app.request_context и воспользуемся им:
from flask import Flask, request
app = Flask(__name__)
@app.route('/user')
def user():
return request.args.get('name', 'abcde')
Результат выполнения кода для адреса /user?name=hello:
hello
Смотрите также
-
класс
ctx,
который управляет контекстами приложения и запроса -
метод
push,
который помещает контекст запроса в стек -
метод
pop,
который удаляет контекст запроса из стека -
функцию
has_request_context,
которая проверяет наличие активного контекста запроса