Метод 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,
который возвращает идентификатор анонимного пользователя