锋哥原创的Python Web开发 Django5视频教程:
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计59条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV14Z421z78C/
用户修改密码主要通过request.user对象的set_password实现,当然校验原密码用check_password,设置完后,需要保存,调用save()方法。
我们urls.py里加下映射;
# 修改密码 get请求直接跳转页面,post请求执行处理path('auth/setPwd', helloWorld.views.setPwd),
新建setPwd.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>修改密码</title>
</head>
<body>
<form action="/auth/setPwd" method="post">{% csrf_token %}<table><tr><th>修改密码</th></tr><tr><td>用户名:</td><td><input type="text" name="username" value="{{ request.user }}" readonly></td></tr><tr><td>原密码:</td><td><input type="password" name="oldPwd" value="{{ oldPwd }}"></td></tr><tr><td>新密码:</td><td><input type="password" name="newPwd" value="{{ newPwd }}"></td></tr><tr><td><input type="submit" value="提交"></td><td><font color="red">{{ errorInfo }}</font></td></tr></table>
</form>
</body>
</html>
views.py里实现setPwd函数:
def setPwd(request):"""修改密码:param request::return:"""if request.method == "POST":oldPwd = request.POST.get("oldPwd")newPwd = request.POST.get("newPwd")# 1,校验用户密码 check_passwordisRight = request.user.check_password(oldPwd)if not isRight:return render(request, 'auth/setPwd.html',context={"errorInfo": "原密码错误", "oldPwd": oldPwd, "newPwd": newPwd})# 2,设置新密码 set_password 实现加密request.user.set_password(newPwd)# 3,保存用户信息request.user.save()return render(request, 'auth/index.html')return render(request, "auth/setPwd.html")
我们测试下,先用户登录,然后浏览器输入: http://127.0.0.1:8000/auth/setPwd
进入修改密码页面;
如果原密码输入错误,提示报错信息
校验成功,跳转主页;
系统用户表的密码也会被修改,同时是加密的后的密码;