Django 从 MySQL 获取数据,数据无法校验成功的现象

本文介绍了在Django中遇到登录页面始终提示密码错误的问题及其解决方案。首先检查ORM操作是否正确引用了`models.py`中的数据对象,接着确认`user_obj`是否通过`.first()`获取。再者,确认密码数据类型,确保与输入框匹配(此处为字符串)。如果已确认这些,问题可能在于密码比较时未进行哈希处理或其他逻辑错误。通过这些步骤,可以定位并解决登录验证问题。
摘要由CSDN通过智能技术生成
def login(request):
    if request.method == 'POST':
        # 获取用户的用户名和密码
        username = request.POST.get('username')
        password = request.POST.get('password')

        # 利用 ORM 操作, 并校验数据是否正确
        user_obj = models.User.objects.filter(username=username).first()
        if user_obj:

            # 去数据库查询, 相当于 select * from app_Zero_author where username = 'Jason';
            if password == user_obj.password:
                return HttpResponse('登录成功')
            return HttpResponse('密码错误')
        return HttpResponse('此用户不存在')
    return render(request, 'login.html')

在这里插入图片描述
在登录页面输入账户发现一直提示密码错误
解决方案如下:

1.检查 ORM 调用 models.py 中的数据对象是否正确
2.检查 user_obj 是否调用 '.first()' 方法获取用户名
3.查看 password 数据类型
		- print(type(password)) -- 结果为:<class 'str'>
		- 查看 login.html 可知 password 为 input 框输入,因此数据类型为字符串
		- 修改 password 的数据类型 -- int(password)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值