Атрибут localize_callback
Атрибут localize_callback принадлежит классу
LoginManager из расширения Flask-Login. Он
хранит ссылку на функцию, которая вызывается для
каждого сообщения, генерируемого расширением.
По умолчанию атрибут равен None, и сообщения
выводятся на английском языке. Если присвоить
атрибуту функцию перевода, то все внутренние
сообщения Flask-Login будут проходить через неё.
Чаще всего в качестве такой функции используют
gettext или lazy_gettext из Flask-Babel.
Синтаксис
login_manager.localize_callback = callback
Пример
Давайте создадим простое приложение с Flask-Login
и назначим localize_callback функцию, которая
оборачивает сообщение в квадратные скобки:
from flask import Flask, redirect, url_for
from flask_login import LoginManager, login_required
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager(app)
def localize(text):
return '[' + text + ']'
login_manager.localize_callback = localize
@app.route('/')
@login_required
def index():
return 'hello'
Теперь при попытке открыть страницу '/' без
авторизации пользователь будет перенаправлен на
страницу входа, а сообщение будет обёрнуто в
квадратные скобки.
Пример
Давайте посмотрим, какое значение имеет атрибут по умолчанию:
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
login_manager = LoginManager(app)
res = login_manager.localize_callback
print(res)
Результат выполнения кода:
None
Смотрите также
-
класс
LoginManager,
которому принадлежит атрибут -
атрибут
login_message,
который задаёт текст сообщения о необходимости входа -
атрибут
needs_refresh_message,
который задаёт текст сообщения о необходимости повторного входа -
метод
unauthorized_handler,
который задаёт обработчик неавторизованного доступа