以下代码引发TypeError: Unicode-objects must be encoded before checking
:
if request.form['username'] == admin[0][0]:
if bcrypt.checkpw(request.form['password'].encode('utf-8'), admin[0][1]):
print('checked')
但代码的这一部分返回True
,因此会打印checked
:
if request.form['username'] == username[0][0]:
if bcrypt.checkpw(request.form['password'].encode('utf-8'), username[0][1]):
print('checked')
admin
& username
是来自SQLite数据库的查询,它们返回一个内部有元组的列表(即[('username')]
两个片段几乎完全相同,两者都被编码。所以我不确定为什么一个有效,另一个没有。
答案 0 :(得分:0)
对于这两个参数,您可以尝试使用编码为utf-8,并使用带有gensalt的hashpw
,其中
来自SQLAlchemy db的user.password
form.password.data描述了请求中的密码输入
post_content