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

Класс Request

Класс Request используется для доступа к данным входящего HTTP-запроса. Его можно объявить параметром в функции-обработчике маршрута, и FastAPI автоматически передаст в него объект запроса. Через атрибуты и методы класса можно получить тело запроса, заголовки, куки, параметры пути и строки запроса, а также другую служебную информацию.

Синтаксис

from fastapi import Request @app.get(path) def handler(request: Request): ...

Пример

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

from fastapi import FastAPI, Request app = FastAPI() @app.get('/') def index(request: Request): return {'client': request.client.host}

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

{"client": "127.0.0.1"}

Пример

Давайте прочитаем заголовки входящего запроса:

from fastapi import FastAPI, Request app = FastAPI() @app.get('/') def index(request: Request): agent = request.headers.get('user-agent') return {'agent': agent}

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

{"agent": "Mozilla/5.0"}

Пример

Давайте прочитаем JSON-тело POST-запроса через метод json:

<+python+> from fastapi import FastAPI, Request app = FastAPI() @app.post('/') async def index(request: Request): data = await request.json() return {'data': data} <-python+>

Результат выполнения кода для тела {"name": "abcde"}:

{"data": {"name": "abcde"}}

Пример

Давайте получим параметры строки запроса через атрибут query_params:

from fastapi import FastAPI, Request app = FastAPI() @app.get('/') def index(request: Request): name = request.query_params.get('name') return {'name': name}

Результат выполнения кода для адреса /?name=abcde:

{"name": "abcde"}

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

  • метод json,
    который читает JSON-тело запроса
  • атрибут query_params,
    который хранит параметры строки запроса
  • атрибут headers,
    который хранит заголовки входящего запроса
  • атрибут client,
    который хранит данные о клиенте
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить