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

Атрибут refresh_view

Атрибут refresh_view применяется к объекту LoginManager и хранит имя функции-обработчика, который вызывается, когда сессия пользователя устарела и требуется повторный вход. Значением атрибута выступает строка с именем представления, зарегистрированного в приложении Flask. Если атрибут не задан, Flask-Login перенаправляет пользователя на представление из login_view. Атрибут удобно применять вместе с защитой маршрутов через fresh_login_required, чтобы отличать обычный вход от повторного подтверждения.

Синтаксис

login_manager.refresh_view = 'name'

Пример

Давайте создадим приложение Flask, настроим LoginManager и укажем атрибут refresh_view с именем функции refresh:

from flask import Flask, render_template from flask_login import LoginManager, login_required, fresh_login_required app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = 'login' login_manager.refresh_view = 'refresh' @app.route('/') @login_required def index(): return render_template('index.html') @app.route('/login') def login(): return render_template('login.html') @app.route('/refresh') def refresh(): return render_template('refresh.html') @app.route('/settings') @fresh_login_required def settings(): return render_template('settings.html')

Теперь создадим шаблоны для каждой страницы:

<p>index page</p>
<p>login page</p>
<p>refresh page</p>
<p>settings page</p>

Если пользователь откроет адрес /settings с устаревшей сессией, Flask-Login перенаправит его на представление refresh, а не на login. Результат выполнения кода:

<p>refresh page</p>

Пример

Давайте проверим, что атрибут refresh_view доступен для чтения и хранит переданное значение:

from flask import Flask from flask_login import LoginManager app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager() login_manager.init_app(app) login_manager.refresh_view = 'refresh' @app.route('/') def index(): return login_manager.refresh_view

Результат выполнения кода:

"refresh"

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

  • атрибут login_view,
    который задаёт представление для входа
  • функцию fresh_login_required,
    которая требует свежую сессию
  • атрибут needs_refresh_message,
    который задаёт сообщение при необходимости обновления
  • метод needs_refresh_handler,
    который обрабатывает запрос на обновление сессии
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить