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)
Бессмысленный пример, так как пользователь будет перенаправлен с главной страницы на страницу, к которой он не может получить доступ (код 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)