РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
420 of 643 menu

Атрибут login_view

Атрибут login_view применяется к объекту LoginManager и хранит строку с именем функции-обработчика. Когда неавторизованный пользователь обращается к маршруту, защищённому декоратором login_required, Flask-Login перенаправляет его на этот обработчик. По умолчанию значение атрибута равно None, то есть перенаправление отключено и вместо него возвращается ошибка 401.

Имя функции задаётся строкой, поскольку на момент настройки LoginManager сама функция может быть ещё не определена. Flask-Login разрешает имя через url_for в момент запроса, поэтому обработчик должен существовать к этому времени.

Синтаксис

login_manager.login_view = 'имя_функции'

Пример

Давайте настроим перенаправление на страницу входа. Сначала создадим приложение и объект LoginManager:

from flask import Flask, redirect, url_for from flask_login import LoginManager, login_required app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = 'login' @app.route('/') def index(): return 'hello' @app.route('/login') def login(): return 'login page' @app.route('/admin') @login_required def admin(): return 'admin page'

Теперь при обращении неавторизованного пользователя к адресу /admin произойдёт перенаправление на обработчик login, и в браузере отобразится:

login page

Пример

Атрибут login_view можно задать и через функцию login_manager.init_app в словаре параметров. Это удобно, когда настройки хранятся в конфигурации приложения:

from flask import Flask from flask_login import LoginManager, login_required app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager() login_manager.init_app(app, login_view='login') @app.route('/') def index(): return 'hello' @app.route('/login') def login(): return 'login page' @app.route('/admin') @login_required def admin(): return 'admin page'

Результат работы будет таким же, как и в предыдущем примере: неавторизованный пользователь попадёт на страницу входа.

Смотрите также

  • класс LoginManager,
    который управляет аутентификацией в приложении
  • метод init_app,
    который привязывает менеджер к приложению Flask
  • функцию login_required,
    которая защищает маршрут от неавторизованных пользователей
  • атрибут login_message,
    который задаёт сообщение при перенаправлении на форму входа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить