Статус HTTP_302_FOUND
Статус HTTP_302_FOUND применяется для указания клиенту,
что запрошенный ресурс временно доступен по другому адресу.
Он импортируется из модуля fastapi.status
и передаётся в параметр status_code декоратора маршрута.
В отличие от статуса 301, который означает постоянный редирект,
302 говорит клиенту, что адрес может измениться снова.
Синтаксис
from fastapi import FastAPI
from fastapi.status import HTTP_302_FOUND
app = FastAPI()
@app.get(path, status_code=HTTP_302_FOUND)
Пример
Давайте создадим маршрут, который возвращает статус 302
и заголовок Location с новым адресом:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
from fastapi.status import HTTP_302_FOUND
app = FastAPI()
@app.get('/old', status_code=HTTP_302_FOUND)
def old_page():
return RedirectResponse(url='/new', status_code=HTTP_302_FOUND)
@app.get('/new')
def new_page():
return {'text': 'hello'}
Результат выполнения кода для адреса /old:
{"text": "hello"}
Пример
Давайте вернём статус 302 без тела ответа, указав только заголовок перенаправления:
<+python+>
from fastapi import FastAPI
from fastapi.responses import Response
from fastapi.status import HTTP_302_FOUND
app = FastAPI()
@app.get('/article', status_code=HTTP_302_FOUND)
def article():
return Response(status_code=HTTP_302_FOUND, headers={'Location': '/user'})
<-python+>
Результат выполнения кода для адреса /article:
{"detail": "Temporary Redirect"}
Смотрите также
-
статус
HTTP_301_MOVED_PERMANENTLY,
который сообщает о постоянном перенаправлении -
статус
HTTP_303_SEE_OTHER,
который перенаправляет на другой ресурс после POST-запроса -
статус
HTTP_307_TEMPORARY_REDIRECT,
который сохраняет метод запроса при редиректе -
модуль
status,
который содержит все коды состояния HTTP