我正在尝试构建用户登录系统,并且已经成功构建了用户注册页面,但是当我尝试登录时,出现以下错误。我正在使用flask,python3.6和pymongo。
这是错误:AttributeError: 'bytes' object has no attribute 'encode'
请帮忙。
回溯(最近通话最近): 调用中的文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask \ app.py”,第2309行 返回self.wsgi_app(环境,start_response) wsgi_app中的文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask \ app.py”,第2295行 响应= self.handle_exception(e) 在handle_exception中的文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask \ app.py”,行1741 加价(exc_type,exc_value,tb) 重新举起文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask_compat.py”,第35行 提高价值 wsgi_app中的文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask \ app.py”,行2292 响应= self.full_dispatch_request() 1815行中的文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask \ app.py”,在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中 加价(exc_type,exc_value,tb) 重新举起文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask_compat.py”,第35行 提高价值 1813行中的文件“ C:\ Users \ elvis \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ flask \ app.py”,在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行 如果bcrypt.hashpw(request.form ['pass']。encode('utf-8'),login_user ['password'])== login_user ['password']。encode('utf-8'): AttributeError:“字节”对象没有属性“编码”
答案 0 :(得分:0)
仅提供Password=" "
示例:
pdf = pdfplumber.open(f,password='')
答案 1 :(得分: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()
对象 bytes
上的 login_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']
,它也可以正常工作。