鋒哥原創的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
進入修改密碼頁面;
如果原密碼輸入錯誤,提示報錯信息
校驗成功,跳轉主頁;
系統用戶表的密碼也會被修改,同時是加密的后的密碼;