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

Метод get_id

Метод get_id применяется к классу пользователя, унаследованному от UserMixin. Он возвращает уникальный идентификатор пользователя в виде строки. Flask-Login использует это значение для сохранения пользователя в сессии и последующего его поиска через функцию user_loader. Параметров метод не принимает.

По умолчанию UserMixin реализует метод так, что он возвращает значение атрибута id, приведённое к строке. Если у вашей модели первичный ключ называется иначе, метод следует переопределить.

Синтаксис

user.get_id()

Пример

Давайте создадим модель пользователя на основе UserMixin и получим её идентификатор:

from flask import Flask from flask_login import UserMixin app = Flask(__name__) class User(UserMixin): def __init__(self, id, name): self.id = id self.name = name user = User(1, 'abcde') res = user.get_id() print(res)

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

"1"

Пример

Давайте переопределим метод get_id, если первичный ключ модели называется user_id:

from flask import Flask from flask_login import UserMixin app = Flask(__name__) class User(UserMixin): def __init__(self, user_id, name): self.user_id = user_id self.name = name def get_id(self): return str(self.user_id) user = User(5, 'article') res = user.get_id() print(res)

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

"5"

Пример

Давайте используем get_id вместе с user_loader, чтобы Flask-Login находил пользователя по идентификатору из сессии:

from flask import Flask from flask_login import LoginManager, UserMixin app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager() login_manager.init_app(app) users = { 1: {'name': 'abcde'}, 2: {'name': 'hello'} } class User(UserMixin): def __init__(self, id, name): self.id = id self.name = name @login_manager.user_loader def load_user(user_id): data = users.get(int(user_id)) if data is None: return None return User(user_id, data['name']) user = User(2, 'hello') res = user.get_id() print(res)

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

"2"

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

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