AttributeError: объект 'bytes' не имеет атрибута 'encode'

Я пытаюсь создать систему входа в систему, и я успешно создал страницу регистрации пользователей, но когда я пытаюсь войти в систему, я получаю сообщение об ошибке ниже. Я использую колбу, python3.6 и pymongo. Это ошибка: AttributeError: 'bytes' object has no attribute 'encode' пожалуйста помоги.

Traceback (most recent call last): File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2309, in call return self.wsgi_app(environ, start_response) File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2295, in wsgi_app response = self.handle_exception(e) File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1741, in handle_exception reraise(exc_type, exc_value, tb) File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_compat.py", line 35, in reraise raise value File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2292, in wsgi_app response = self.full_dispatch_request() File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request rv = self.handle_user_exception(e) File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1718, in handle_user_exception reraise(exc_type, exc_value, tb) File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_compat.py", line 35, in reraise raise value File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request rv = self.dispatch_request() File "C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1799, in dispatch_request return self.view_functionsrule.endpoint File "C:\Users\elvis\Desktop\flask apps\testmon\even\app\run.py", line 30, in login if bcrypt.hashpw(request.form['pass'].encode('utf-8'), login_user['password']) == login_user['password'].encode('utf-8'): AttributeError: 'bytes' object has no attribute 'encode'

(скриншот страницы с ошибкой)

См., Например, вопрос это SO.

Jeroen Heier 27.08.2018 21:57

Пожалуйста, покажите нам соответствующий код (см. Также stackoverflow.com/help/on-topic, раздел «Вопросы, требующие помощи при отладке»). С уважением

YakovL 28.08.2018 01:08

Отвечает ли это на ваш вопрос? HG-Git: AttributeError: объект 'bytes' не имеет атрибута 'encode'

StayOnTarget 15.06.2020 13:45
Новые приложения с использованием ChatGPT
Новые приложения с использованием ChatGPT
Я собираюсь вернуться к теме, которую уже освещал ранее, - чатгпт.
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Другой маршрут в Flask Python
Другой маршрут в Flask Python
Flask - это фреймворк, который поддерживает веб-приложения. В этой статье я покажу, как мы можем использовать @app .route в flask, чтобы иметь другую...
0
3
2 363
2

Ответы 2

Только отдать Password = " "

Пример:

pdf = pdfplumber.open(f,password='')

Последняя строка трассировки

login_user['password']) == login_user['password'].encode('utf-8'): AttributeError: 'bytes' object has no attribute 'encode'

Сообщает вам, что вы передаете объект типа bytes, а не str.
Итак, вы пытаетесь вызвать метод .encode() для объекта bytes. Вам нужно проверить, что такое значение login_user['password'], и либо преобразовать его в строку, вызвав метод decode() для объекта byteslogin_user['password']).decode().encode('utf-8'), либо сохранить строковое значение в этом словаре в начале.

Из этой трассировки я вижу, что то, что вы делаете, не имеет особого смысла, но, если вы не можете поделиться кодом, я могу сказать не так много.

Обновлено:

login if bcrypt.hashpw(request.form['pass'].encode('utf-8'), login_user['password']) == login_user['password'].encode('utf-8'): AttributeError: 'bytes' object has no attribute 'encode'

Вы также, вероятно, можете удалить .endoce('utf-8') из части login_user['password'], и это тоже может сработать.

Другие вопросы по теме