Метод __init__ класса RedirectResponse
Метод __init__ применяется к классу
RedirectResponse и создаёт объект ответа,
который сообщает браузеру о необходимости перейти
на другой адрес. Первым параметром передаётся
URL для перенаправления. По умолчанию используется
код состояния 307, но его можно изменить через
параметр status_code. Также можно передать
заголовки через headers и фоновую задачу
через background.
Синтаксис
RedirectResponse(url, status_code=307, headers=None, media_type=None, background=None)
Пример
Давайте создадим простое приложение, которое
перенаправляет клиента с адреса '/'
на адрес '/user':
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.get('/')
def index():
return RedirectResponse('/user')
@app.get('/user')
def user():
return {'text': 'user page'}
При переходе на адрес '/' браузер
автоматически перенаправится на '/user'
и получит следующий ответ:
{"text": "user page"}
Пример
Давайте укажем код состояния 301 для постоянного перенаправления:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.get('/old')
def old():
return RedirectResponse('/new', status_code=301)
@app.get('/new')
def new():
return {'text': 'new page'}
Результат выполнения кода для адреса '/old':
Пример
Давайте добавим собственный заголовок к ответу перенаправления:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.get('/')
def index():
return RedirectResponse(
'/user',
headers={'X-Custom': 'abcde'}
)
@app.get('/user')
def user():
return {'text': 'user page'}
Результат выполнения кода для адреса '/':
{"text": "user page"}
Смотрите также
-
класс
RedirectResponse,
который создаёт ответ перенаправления -
метод
__init__,
который инициализирует ответ перенаправления -
атрибут
status_code,
который задаёт код состояния ответа -
атрибут
headers,
который задаёт заголовки ответа