Класс Flask имеет функцию redirect () . При вызове он возвращает объект ответа и перенаправляет пользователя в другое целевое местоположение с указанным кодом состояния.
Прототип функции redirect () показан ниже:
Flask.redirect(location, statuscode, response)
В вышеуказанной функции —
-
Параметр location — это URL-адрес, по которому должен быть перенаправлен ответ.
-
код состояния отправляется в заголовок браузера, по умолчанию 302.
-
Параметр response используется для создания экземпляра ответа.
Параметр location — это URL-адрес, по которому должен быть перенаправлен ответ.
код состояния отправляется в заголовок браузера, по умолчанию 302.
Параметр response используется для создания экземпляра ответа.
Следующие коды состояния стандартизированы —
- HTTP_300_MULTIPLE_CHOICES
- HTTP_301_MOVED_PERMANENTLY
- HTTP_302_FOUND
- HTTP_303_SEE_OTHER
- HTTP_304_NOT_MODIFIED
- HTTP_305_USE_PROXY
- HTTP_306_RESERVED
- HTTP_307_TEMPORARY_REDIRECT
Код состояния по умолчанию — 302 , что означает «найдено» .
В следующем примере функция redirect () используется для повторного отображения страницы входа в систему при неудачной попытке входа.
from flask import Flask, redirect, url_for, render_template, request # Initialize the Flask application app = Flask(__name__) @app.route('/') def index(): return render_template('log_in.html') @app.route('/login',methods = ['POST', 'GET']) def login(): if request.method == 'POST' and request.form['username'] == 'admin' : return redirect(url_for('success')) return redirect(url_for('index')) @app.route('/success') def success(): return 'logged in successfully' if __name__ == '__main__': app.run(debug = True)
Класс Flask имеет функцию abort () с кодом ошибки.
Flask.abort(code)
Параметр Code принимает одно из следующих значений:
-
400 — за плохой запрос
-
401 — для неаутентифицированных
-
403 — для Запрещенного
-
404 — для не найден
-
406 — неприемлемо
-
415 — для неподдерживаемого типа носителя
-
429 — Слишком много запросов
400 — за плохой запрос
401 — для неаутентифицированных
403 — для Запрещенного
404 — для не найден
406 — неприемлемо
415 — для неподдерживаемого типа носителя
429 — Слишком много запросов
Давайте сделаем небольшое изменение в функции login () в приведенном выше коде. Вместо того, чтобы повторно отображать страницу входа, если должна отображаться страница «Несанкционированный» , замените ее вызовом для отмены (401) .