Исключение RequestRedirect
Исключение RequestRedirect наследуется от класса
HTTPException и используется фреймворком для
перенаправления клиента на другой адрес. Оно содержит
атрибут new_url, в котором хранится целевой URL
перенаправления. Это исключение автоматически
возникает внутри Flask, например, при обработке
маршрутов со слешем на конце или при вызове функции
redirect.
Синтаксис
from werkzeug.routing import RequestRedirect
RequestRedirect(new_url, code=302)
Пример
Давайте перехватим исключение RequestRedirect
через обработчик ошибок и выведем целевой URL:
from flask import Flask
from werkzeug.routing import RequestRedirect
app = Flask(__name__)
@app.errorhandler(RequestRedirect)
def handle_redirect(error):
return 'Redirect to: ' + error.new_url
@app.route('/user/')
def user():
return 'user page'
Результат выполнения кода для адреса /user:
<+html+>
Redirect to: http://localhost/user/
<-html+>
Пример
Давайте вызовем исключение RequestRedirect
вручную и проверим его атрибуты:
from flask import Flask
from werkzeug.routing import RequestRedirect
app = Flask(__name__)
@app.route('/')
def index():
error = RequestRedirect('/user')
return 'code: ' + str(error.code) + ', url: ' + error.new_url
Результат выполнения кода:
<+html+>
code: 302, url: /user
<-html+>
Смотрите также
-
класс
HTTPException,
базовый класс всех HTTP-исключений Flask -
исключение
RoutingException,
базовое исключение для ошибок маршрутизации -
исключение
NotFound,
которое возникает при отсутствии маршрута -
исключение
MethodNotAllowed,
которое возникает при недопустимом HTTP-методе