已有184人关注
根据本书提供的代码运行程序,登录系统报错
发表在Python图书答疑 2021-09-08 《Python Web开发从入门到实践》第8章 开发基于Flask框架的好记星博客系统
是否精华
版块置顶:


分享到:
精彩评论 7
C灵C
学分:72 LV3
2021-09-11
沙发

打断点,检查下你拿去校验的那个password是否是hash值,

screenshot_20210911_143017.png

解决的方法可以参考passlib官方文档给出的,

screenshot_20210911_144254.png

该问题也有可能是系统或数据库的版本等原因导致,也可能是注册时密码使用了特殊符号

C灵C
学分:72 LV3
2021-09-11
板凳

补图,最后一张为解决方法

C灵C
学分:72 LV3
2021-09-11
地板
sql = "SELECT * FROM users  WHERE username = '%s'" % (username) # 根据用户名查找user表中记录
db = MysqlUtil() # 实例化数据库操作类
result = db.fetchone(sql) # 获取一条记录
password = result['password']  # 用户填写的密码

# 对比用户填写的密码和数据库中记录密码是否一致


# 此处报错

if sha256_crypt.verify(password_candidate, password): # 调用verify方法验证,如果为真,验证通过



# 写入session

session['logged_in'] = True
   session['username'] = username
   flash('登录成功!', 'success') # 闪存信息
   return redirect(url_for('dashboard')) # 跳转到控制台






官方提供的解决方法:

One of the rarer use-cases is the need to identify whether a string recognizably belongs to a given hasher class. This can be important in some cases, because attempting to call PasswordHash.verify() with another algorithm’s hash will result in a ValueError:

>>> from passlib.hash import pbkdf2_sha256, md5_crypt>>> other_hash = md5_crypt.hash("password")>>> pbkdf2_sha256.verify("password", other_hash)Traceback (most recent call last):
    <traceback omitted>ValueError: not a valid pbkdf2_sha256 hash

This can be prevented by using the identify method, which determines whether a hash belongs to a given algorithm:

>>> hash = pbkdf2_sha256.hash("password")>>> pbkdf2_sha256.identify(hash)True>>> pbkdf2_sha256.identify(other_hash)False


原文网址:https://passlib.readthedocs.io/en/stable/narr/hash-tutorial.html



seven_1631770228
学分:5 LV1
2021-09-15
5L

附件的图片都看不见,方便再上传下吗

seven_1631770228
学分:5 LV1
2021-09-15
6L

C灵C 发表于2021-09-11 14:49

补图,最后一张为解决方法

图片失效,方便再发一下给我吗,谢谢了

game99258
学分:2266 LV10
2022-08-28
7L

数据库登录正常吗

首页上一页 1 下一页尾页 7 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照