Атрибут is_anonymous
Атрибут is_anonymous применяется к классу пользователя,
унаследованному от UserMixin. Он возвращает булево значение:
True, если пользователь не аутентифицирован,
и False, если пользователь вошёл в систему.
По умолчанию класс UserMixin возвращает False,
а класс AnonymousUserMixin - True.
Этот атрибут используется Flask-Login для разграничения
доступа к защищённым страницам.
Синтаксис
user.is_anonymous
Пример
Давайте создадим класс пользователя на основе
UserMixin и проверим значение атрибута:
from flask import Flask
from flask_login import UserMixin
app = Flask(__name__)
class User(UserMixin):
def __init__(self, id):
self.id = id
user = User(1)
res = user.is_anonymous
print(res)
Результат выполнения кода:
False
Пример
Давайте используем атрибут is_anonymous
внутри обработчика маршрута, чтобы показать разный
текст для гостя и для вошедшего пользователя:
from flask import Flask
from flask_login import UserMixin, current_user
app = Flask(__name__)
app.secret_key = 'abcde'
class User(UserMixin):
def __init__(self, id):
self.id = id
@app.route('/')
def index():
if current_user.is_anonymous:
return 'guest'
return 'user'
Результат выполнения кода для гостя:
"guest"
Пример
Давайте переопределим атрибут is_anonymous
в собственном классе, чтобы всегда возвращать True:
from flask import Flask
from flask_login import UserMixin
app = Flask(__name__)
class User(UserMixin):
def __init__(self, id):
self.id = id
@property
def is_anonymous(self):
return True
user = User(1)
res = user.is_anonymous
print(res)
Результат выполнения кода:
True
Смотрите также
-
класс
UserMixin,
который предоставляет базовые атрибуты пользователя -
атрибут
is_authenticated,
который проверяет аутентификацию пользователя -
класс
AnonymousUserMixin,
который представляет анонимного пользователя -
атрибут
anonymous_user,
который задаёт класс для гостевого пользователя