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

Метод request_context

Метод request_context применяется к приложению Flask и возвращает объект контекста запроса. Этот контекст позволяет вручную установить окружение запроса, чтобы работать с request, session и g без реального HTTP-запроса. Первым параметром передаётся объект окружения WSGI, вторым - необязательный объект запроса Request. Контекст можно использовать как контекстный менеджер или вызывать методы push и pop вручную.

Синтаксис

app.request_context(environ, [request])

Пример

Давайте создадим контекст запроса и получим путь из объекта request:

from flask import Flask, request app = Flask(__name__) environ = { 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/abcde', 'SERVER_NAME': 'localhost', 'SERVER_PORT': '5000', 'wsgi.url_scheme': 'http', 'wsgi.input': None, 'wsgi.errors': None, 'wsgi.version': (1, 0), 'wsgi.multithread': False, 'wsgi.multiprocess': False, 'wsgi.run_once': False, } with app.request_context(environ): res = request.path print(res)

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

'/abcde'

Пример

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

from flask import Flask, request app = Flask(__name__) environ = { 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/user', 'SERVER_NAME': 'localhost', 'SERVER_PORT': '5000', 'wsgi.url_scheme': 'http', 'wsgi.input': None, 'wsgi.errors': None, 'wsgi.version': (1, 0), 'wsgi.multithread': False, 'wsgi.multiprocess': False, 'wsgi.run_once': False, } ctx = app.request_context(environ) ctx.push() res = request.method ctx.pop() print(res)

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

'GET'

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

  • метод app_context,
    который создаёт контекст приложения
  • метод test_request_context,
    который создаёт контекст запроса из аргументов
  • метод wsgi_app,
    который вызывает приложение как WSGI-обработчик
  • метод test_client,
    который создаёт клиент для тестирования запросов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить