0

我正在尝试构建用户登录系统,并且我已经成功构建了用户注册页面,但是当我尝试登录时,出现以下错误。我正在使用烧瓶、python3.6 和 pymongo。这是错误:AttributeError: 'bytes' object has no attribute 'encode' 请帮助。

Traceback(最近一次调用最后一次):文件“C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py”,第 2309 行,调用中 返回 self.wsgi_app(environ, start_response) 文件“C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py”,第 2295 行,在 wsgi_app response = self. handle_exception(e) 文件“C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py”,第 1741 行,在 handle_exception reraise(exc_type, exc_value, tb) 文件中“C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_compat.py”,第 35 行,在 reraise raise 值文件“C:\Users\elvis\AppData\Local\Programs \Python\Python36\lib\site-packages\flask\app.py”,第 2292 行,在 wsgi_app 响应 = self.full_dispatch_request() 文件“C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib \site-packages\flask\app.py",第 1815 行,在 full_dispatch_request rv = self.handle_user_exception(e) 文件“C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py”,第 1718 行,在 handle_user_exception reraise(exc_type , exc_value, tb) 文件“C:\Users\elvis\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_compat.py”,第 35 行,在 reraise raise value 文件“C:\Users\elvis \AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py”,第 1813 行,在 full_dispatch_request rv = self.dispatch_request() 文件“C:\Users\elvis\AppData\Local\Programs \Python\Python36\lib\site-packages\flask\app.py”,第 1799 行,在 dispatch_request 中返回 self.view_functionsrule.endpoint 文件“C:\Users\elvis\Desktop\flask apps\testmon\even\app\run .py”,第 30 行,登录 if bcrypt.hashpw(request.form['pass'].encode('utf-8'), login_user['password']) == login_user['password'].encode('utf-8'): AttributeError:“字节”对象没有属性“编码”

错误页面截图

4

2 回答 2

0

只给Password=" "

例子:

pdf = pdfplumber.open(f,password='')
于 2019-07-10T08:30:22.543 回答
0

回溯的最后一行

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']零件中删除它,它也可以工作。

于 2021-05-24T14:24:53.567 回答