Метод init_app
Метод init_app применяется к объекту
LoginManager и привязывает его к конкретному
приложению Flask. Первым параметром передаётся
экземпляр приложения app. Метод настраивает
все внутренние механизмы авторизации: регистрирует
контекстные процессоры, устанавливает обработчики
и подключает загрузчик пользователя.
Метод init_app особенно полезен при
создании расширений и при использовании фабрики
приложений, когда объект LoginManager
создаётся отдельно от экземпляра Flask.
Синтаксис
login_manager.init_app(app)
Пример
Давайте создадим менеджер авторизации и привяжем
его к приложению через метод init_app:
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager()
login_manager.init_app(app)
@app.route('/')
def index():
return 'hello'
Результат выполнения кода для адреса /:
Пример
Давайте используем метод init_app вместе
с фабрикой приложений и загрузчиком пользователя:
from flask import Flask
from flask_login import LoginManager, UserMixin
login_manager = LoginManager()
class User(UserMixin):
def __init__(self, id):
self.id = id
@login_manager.user_loader
def load_user(user_id):
return User(user_id)
def create_app():
app = Flask(__name__)
app.secret_key = 'secret'
login_manager.init_app(app)
@app.route('/')
def index():
return 'user'
return app
app = create_app()
Результат выполнения кода для адреса /:
Смотрите также
-
класс
LoginManager,
который управляет авторизацией во Flask -
метод
user_loader,
который регистрирует загрузчик пользователя -
метод
unauthorized_handler,
который задаёт обработчик неавторизованных запросов -
функцию
login_user,
которая выполняет вход пользователя