1. 程式人生 > >6-11-12 django線上教育平臺----忘記密碼

6-11-12 django線上教育平臺----忘記密碼

忘記密碼功能成功修改過程如下:

在登入頁面點選忘記密碼按鈕,進入忘記密碼頁面,填寫賬戶和密碼,提交表單,後臺實現傳送郵件到郵箱,頁面跳轉發送郵件成功的頁面

點選郵箱的重置密碼連結,跳轉到重置密碼頁面,填寫新密碼和確定密碼,點選提交,密碼修改成功,還是跳轉到登入頁面

一、進入忘記密碼頁面

1、模板配置

新建forgetpwd.html,配置css,js,images等檔案

以css檔案為例
這裡寫圖片描述

2、配置模板的url

這裡寫圖片描述

3、編寫views.py,新建ForgetPwdView

這裡寫圖片描述

4、配置login.html頁面中的忘記密碼按鈕的連結

這裡寫圖片描述

5、測試以上是否配置正確

進入登入頁面,點選忘記密碼按鈕,跳轉到忘記密碼頁面,頁面顯示完整,則測試成功

頁面的驗證碼沒有顯示

這裡寫圖片描述

顯示驗證碼

編寫forms.py

這裡寫圖片描述

將資料傳給模板

這裡寫圖片描述

前端接收資料

這裡寫圖片描述

二、傳送郵件

忘記密碼頁面也是一個表單,在forms.py進行表單資料驗證,在views.py中寫提交的邏輯併發送郵件到郵箱,還需要配置url和模板

1、編寫post方法,傳送重置連結到郵箱,傳送成功後跳轉到傳送成功的頁面send_success.html

編寫post邏輯

這裡寫圖片描述

完善email_send.py

這裡寫圖片描述

錯誤資訊顯示,資料回填

這裡寫圖片描述

2、測試以上邏輯

用之前註冊過的使用者測試

這裡寫圖片描述

打斷點除錯

這裡寫圖片描述

測試成功,收到郵件,頁面跳轉到傳送成功的頁面

這裡寫圖片描述

這裡寫圖片描述

三、點選重置密碼連結後,編寫重置密碼功能

1、點選重置密碼連結,編寫點選的邏輯get()

配置url

這裡寫圖片描述

新建重置密碼頁面password_reset.html,在模板中新增input,要將修改哪個使用者告訴後臺,因為使用者是在未登陸的狀態下修改密碼的

這裡寫圖片描述

點選連結進入密碼重置頁面,編寫邏輯

這裡寫圖片描述

測試

這裡寫圖片描述

這裡寫圖片描述

檢視重置密碼頁面原始碼

這裡寫圖片描述

2、進入重置密碼頁面後就是寫重置密碼的邏輯,還是一個表單

forms.py驗證表單資料

這裡寫圖片描述

模板配置

這裡寫圖片描述

配置提交後的url,這裡無法重用reset的連結,因為post時active_code引數傳遞不了,所以另寫一個
ModifyPwdView,實現表單提交邏輯

active_code引數傳不進來

這裡寫圖片描述

url配置

這裡寫圖片描述

重置密碼邏輯ModifyPwdView

這裡寫圖片描述