Я создал весь свой проект, используя psycopg2 lib и контроллер, который извлекает все выбранные из базы данных, которые мне нужны, например:
UserControllers.py
def getUser(user_id):
try:
conn = ConnectionDatabase()
cur = conn.cursor()
conn.set_client_encoding('LATIN1')
result = cur.execute("SELECT * FROM users WHERE id=%s",(user_id,))
result = cur.fetchone()
columns = [desc[0] for desc in cur.description]
return {columns[i]: result [i] for i in range(len(columns))}
except Exception as e:
return "User not found"
Теперь пришло время создать система входа в систему, я выбираю использовать flask_login, но изучая документацию, я обнаружил следующее:
Расширение Flask -Login работает с пользовательской моделью приложения и ожидает реализации определенных свойств и методов. в нем.
такие из них: is_authenticated, is_active, is_anonymous, get_id
.
Я пытаюсь работать без модели, поэтому создаю load_user()
, предоставленный документацией, таким образом:
@login_manager.user_loader
def load_user(user_id):
return User.get(user_id)
Я изменил свой на:
@login_manager.user_loader
def load_user(userid):
return getUser(user_id)
Заметьте, что вместо этого возвращайте объект User, поскольку документация подсказывает You will need to provide a user_loader callback. This callback is used to reload the user object from the user ID stored in the session
, я возвращаю dict, и когда я запускаю это:
´AttributeError: у объекта 'int' нет атрибута 'is_active'`
Кто-нибудь может подсказать, как мне поступить без модели User?