Функция redirect
Функция redirect применяется для перенаправления
пользователя с одного адреса на другой. Первым
параметром передаётся URL или имя обработчика.
Вторым параметром можно передать код состояния
HTTP (по умолчанию 302).
Синтаксис
redirect(location, code=302, Response=None)
Пример
Давайте перенаправим пользователя с адреса '/old'
на адрес '/new':
from flask import Flask, redirect
app = Flask(__name__)
@app.route('/old')
def old():
return redirect('/new')
@app.route('/new')
def new():
return 'new page'
При переходе на адрес /old браузер
автоматически перенаправит пользователя на
адрес /new.
Пример
Давайте перенаправим пользователя на другой сайт:
from flask import Flask, redirect
app = Flask(__name__)
@app.route('/')
def index():
return redirect('https://code.mu')
При переходе на адрес / браузер
перенаправит пользователя на сайт
https://code.mu.
Пример
Давайте используем функцию url_for для
построения адреса по имени обработчика:
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
return redirect(url_for('user', name='abcde'))
@app.route('/user/<name>')
def user(name):
return name
При переходе на адрес / браузер
перенаправит пользователя на адрес
/user/abcde и вернёт строку:
abcde
Пример
Давайте укажем код состояния 301 для постоянного перенаправления:
from flask import Flask, redirect
app = Flask(__name__)
@app.route('/old')
def old():
return redirect('/new', code=301)
@app.route('/new')
def new():
return 'new page'
При переходе на адрес /old браузер
получит ответ с кодом 301 и перенаправит
пользователя на адрес /new.