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

Статус HTTP_303_SEE_OTHER

Статус HTTP_303_SEE_OTHER применяется для перенаправления клиента на другой URL после обработки запроса. В отличие от статуса HTTP_302_FOUND, клиент обязан выполнить переход по новому адресу именно методом GET, даже если исходный запрос был POST, PUT или DELETE. Статус часто используется в паттерне Post/Redirect/Get, чтобы избежать повторной отправки формы при обновлении страницы. Константа импортируется из модуля fastapi.status и передаётся в параметр status_code декоратора маршрута или в объект Response.

Синтаксис

from fastapi import status status.HTTP_303_SEE_OTHER

Пример

Давайте вернём статус HTTP_303_SEE_OTHER и заголовок Location с адресом перенаправления:

from fastapi import FastAPI, Response, status app = FastAPI() @app.post('/submit') def submit(res: Response): res.status_code = status.HTTP_303_SEE_OTHER res.headers['Location'] = '/result' return {'text': 'created'} @app.get('/result') def result(): return {'text': 'result page'}

Результат выполнения POST-запроса к адресу /submit:

{"text": "created"}

При этом ответ содержит код 303 и заголовок Location: /result, по которому клиент выполнит GET-запрос.

Пример

Давайте зададим статус через параметр status_code декоратора и класс RedirectResponse:

from fastapi import FastAPI, status from fastapi.responses import RedirectResponse app = FastAPI() @app.post('/user', status_code=status.HTTP_303_SEE_OTHER) def create_user(): return RedirectResponse(url='/user/abcde', status_code=status.HTTP_303_SEE_OTHER) @app.get('/user/{name}') def user(name: str): return {'name': name}

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

{"name": "abcde"}

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

  • статус HTTP_302_FOUND,
    который выполняет временное перенаправление без смены метода
  • статус HTTP_301_MOVED_PERMANENTLY,
    который указывает на постоянное перенаправление ресурса
  • статус HTTP_307_TEMPORARY_REDIRECT,
    который сохраняет исходный HTTP-метод при перенаправлении
  • модуль status,
    который содержит все константы HTTP-статусов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить