Сообщить об ошибке.

Функция redirect модуля flask в Python

Перенаправления/редиректы с одного URL-адреса на другой

Синтаксис:

import flask

flask.redirect(location, code=302, Response=None)

Параметры:

  • location - URL-адрес, на который должен быть перенаправлен ответ.
  • code - код статуса перенаправления. По умолчанию 302.
  • Response - класс Response для использования при создании экземпляра ответа. По умолчанию используется werkzeug.wrappers.Response, если не указано иное.

Возвращаемое значение:

Описание:

Функция redirect() возвращает объект ответа Response (приложение WSGI), который при вызове перенаправляет клиента в целевое расположение location.

Поддерживаемые коды ответа code: 301, 302, 303, 305, 307 и 308. Код ответа 300 не поддерживается, потому что это не настоящее перенаправление, и 304, потому что это ответ на запрос с запросом с определенными заголовками If-Modified-Since.

По умолчанию код ответа при редиректе 302, что бы изменить код ответа приложения, то нужно просто передать второй аргумент:

@app.route('/')
def index():
    return redirect(url_for('login'), 301)

Пример редиректа с одного URL-адреса на другой:

Бессмысленный пример, так как пользователь будет перенаправлен с главной страницы на страницу, к которой он не может получить доступ (код HTTP 401 означает отказ в доступе), но этот пример показывает, как это работает.

from flask import Flask, abort, redirect, url_for

app = Flask(__name__)

@app.route('/')
def index():
    return redirect(url_for('login'), 301)

@app.route('/login')
def login():
    abort(401)