Класс RedirectResponse
Класс RedirectResponse применяется для создания ответа,
который перенаправляет клиента на другой URL.
Первый параметр url задаёт адрес перенаправления.
Параметр status_code определяет HTTP-код ответа
(по умолчанию 307). Параметр headers позволяет
добавить свои заголовки. Параметр background
задаёт фоновую задачу.
Синтаксис
RedirectResponse(url, status_code=307, headers=None, media_type=None, background=None)
Пример
Давайте создадим маршрут, который перенаправляет пользователя на другой адрес:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.get('/old')
def old():
return RedirectResponse(url='/new')
@app.get('/new')
def new():
return {'text': 'hello'}
При переходе на адрес /old клиент получит ответ
с кодом 307 и заголовком Location, указывающим
на /new.
Пример
Давайте явно укажем код ответа 301 для постоянного перенаправления:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.get('/article')
def article():
return RedirectResponse(url='/article/new', status_code=301)
Результат выполнения кода - ответ с кодом 301
и заголовком Location: /article/new.
Пример
Давайте добавим свой заголовок к перенаправлению:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.get('/user')
def user():
return RedirectResponse(
url='/user/abcde',
status_code=303,
headers={'X-Custom': 'value'}
)
Результат выполнения кода - ответ с кодом 303,
заголовком Location: /user/abcde
и дополнительным заголовком X-Custom: value.
Смотрите также
-
класс
Response,
базовый класс всех ответов -
класс
JSONResponse,
который возвращает ответ в формате JSON -
класс
HTMLResponse,
который возвращает HTML-страницу -
класс
RedirectResponse.init,
конструктор класса RedirectResponse