Ошибка атрибута: тип объекта "Клиент" не имеет атрибута "получить"
Я использую пирамидальный фреймворк с BD postgres, я делаю логин, но у меня появляется следующая ошибка "Ошибка атрибута: Тип объекта" Клиент "не имеет атрибута" получить "". "
@view_config (route_name = 'login', renderer = 'templates / login.pt')
def login(request):
a = request.params.get('login1')
contrasenia = request.params.get('password1')
if request.method == 'POST':
if a and Client.get(a) == contrasenia:
headers = remember(request, a)
return HTTPFound('/', headers=headers)
return {}
2 ответа
Ошибка описывает проблему. Эта строка является проблемой:
if a and Client.get(a) == contrasenia:
Предмет Client
не имеет атрибута get
, Извините, я понятия не имею, что этот объект может быть основан на предоставленной информации.
Я предлагаю поработать над официальным вики-руководством по SQLAlchemy + URL для Pyramid. Хотя он использует SQLite для базы данных, эти концепции применимы и к Postgres. В шаге по аутентификации также есть соответствующие детали для вашей конкретной проблемы.
Если я угадываю правильно, вы, вероятно, пытаетесь аутентифицировать пользователя.
Назовите ваши переменные соответствующим образом:
email = request.params.get('email')
password = request.params.get('password')
Затем запросите клиента по электронной почте (я предполагаю, что вы используете SQLAlchemy):
client = Session.query(Client).filter(Client.email == email).first()
Если для данной электронной почты существует клиент, проверьте хэши паролей (поищите в интернете информацию о безопасности паролей, примеры решений: Salt and hash a password in python)
if client.password_hash == hashing_func(password):
return HTTPFound('/', headers=remeber(request, client.id))