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

Класс UserMixin

Класс UserMixin применяется для создания модели пользователя в Flask-Login. Он избавляет от необходимости вручную реализовывать четыре обязательных атрибута и один метод. Достаточно унаследовать свою модель от этого класса, чтобы она сразу подходила для аутентификации.

Класс предоставляет следующие элементы: is_authenticated, is_active, is_anonymous и метод get_id. Все они возвращают значения по умолчанию, которые подходят для большинства приложений.

Синтаксис

from flask_login import UserMixin class User(UserMixin): pass

Пример

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

from flask_login import UserMixin class User(UserMixin): def __init__(self, id): self.id = id user = User(1) print(user.is_authenticated) print(user.is_active) print(user.is_anonymous) print(user.get_id())

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

True True False "1"

Пример

Давайте используем модель вместе с LoginManager и загрузим пользователя в сессию:

from flask import Flask from flask_login import UserMixin, LoginManager, login_user app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager() login_manager.init_app(app) class User(UserMixin): def __init__(self, id): self.id = id @login_manager.user_loader def load_user(user_id): return User(user_id) @app.route('/login') def login(): user = User(1) login_user(user) return 'logged in'

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

logged in

Пример

Давайте переопределим метод get_id, чтобы он возвращал строковое представление идентификатора:

from flask_login import UserMixin class User(UserMixin): def __init__(self, id): self.id = id def get_id(self): return str(self.id) user = User(42) print(user.get_id())

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

"42"

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

  • класс LoginManager,
    который управляет аутентификацией
  • метод user_loader,
    который загружает пользователя по id
  • функцию login_user,
    которая выполняет вход пользователя
  • класс AnonymousUserMixin,
    который представляет анонимного пользователя
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить