django 開發忘記密碼透過郵箱找回功能範例_python
這篇文章主要介紹了django 開發忘記密碼透過郵箱找回功能範例,現在分享給大家,也給大家做個參考。一起來看看吧
一、流程分析:
#1.點選忘記密碼====》forget.html頁面,輸入郵箱和驗證碼,發送驗證連結網址的郵件====》發送成功,跳到send_success.html提示
2.到郵箱裡找到驗證連結網址,訪問重設密碼網址reset.html= ==》重設密碼提交數據,成功則返回首頁,失敗則返回錯誤訊息
#二、
1.users/forms .py檔案中
from django import forms from captcha.fields import CaptchaField ....... #forget.html中,用于验证邮箱格式和验证码 class ForgetForm(forms.Form): email=forms.EmailField(required=True) captcha=CaptchaField(error_messages={'invalid':'验证码错误'}) #reset.html中,用于验证新设的密码长度是否达标 class ResetForm(forms.Form): newpwd1=forms.CharField(required=True,min_length=6,error_messages={'required': '密码不能为空.', 'min_length': "至少6位"}) newpwd2 = forms.CharField(required=True, min_length=6, error_messages={'required': '密码不能为空.', 'min_length': "至少6位"})
2.users/views.py中相關程式碼:
##
...... from django.shortcuts import render,redirect from django.http import HttpResponse from users.form import ForgetForm,ResetForm from .models import UserProfile from django.contrib.auth.hashers import make_password from apps.utils.email_send import send_register_email from .models import EmailVerifyRecord ...... class ForgetPwdView(View): '''忘记密码''' def get(self,request): forget_form=ForgetForm() return render(request,'forget.html',{'forget_form':forget_form}) def post(self,request): forget_form = ForgetForm(request.POST) if forget_form.is_valid(): email=request.POST.get('email','') send_register_email(email,'forget') return render(request,'send_success.html') else: return render(request,'forget.html',{'forget_form':forget_form}) class ResetView(View): '''重置密码''' def get(self,request,active_code): record=EmailVerifyRecord.objects.filter(code=active_code) print(record) if record: for i in record: email=i.email is_register=UserProfile.objects.filter(email=email) if is_register: return render(request,'pwd_reset.html',{'email':email}) return redirect('index') #因为<form>表单中的路径要是确定的,所以post函数另外定义一个类来完成 class ModifyView(View): """重置密码post部分""" def post(self,request): reset_form=ResetForm(request.POST) if reset_form.is_valid(): pwd1=request.POST.get('newpwd1','') pwd2=request.POST.get('newpwd2','') email=request.POST.get('email','') if pwd1!=pwd2: return render(request,'pwd_reset.html',{'msg':'密码不一致!'}) else: user=UserProfile.objects.get(email=email) user.password=make_password(pwd2) user.save() return redirect('index') else: email=request.POST.get('email','') return render(request,'pwd_reset.html',{'msg':reset_form.errors})
<!DOCTYPE html> {% load staticfiles %} <html lang="en"> <head> <meta charset="UTF-8"> <title>忘记密码</title> <style> .out{ width: 500px; height: 900px; margin: 0 auto; margin-top: 100px; } </style> </head> <body> <p class="out"> <h1>真粗心,忘了密码吧?快通过邮箱找回密码吧!</h1> <form method="post" action="{% url 'forget_pwd' %}"> <P><span>邮箱:</span><input type="text" name="email"></P> <P><span>验证码:</span>{{ forget_form.captcha }}</P> {% csrf_token %} <p><input type="submit" value="确认发送验证邮件"></p> </form> <h1>{{ forget_form.errors }}</h1> </p> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>发送邮件成功,快去邮箱查看吧!(收件箱没有,垃圾箱一定有……)</h1> </body> </html>
<!DOCTYPE html> {% load staticfiles %} <html lang="en"> <head> <meta charset="UTF-8"> <title>重置密码</title> <style> .out{ width: 500px; height: 900px; margin: 0 auto; margin-top: 100px; } </style> </head> <body> <p class="out"> <h1>可以重新设置一个好记的新密码啦!</h1> <form method="post" action="{% url 'modify' %}"> <P><span>新密码:</span><input type="password" name="newpwd1" placeholder="至少6位"></P> <P><span>确认新密码:</span><input type="password" name="newpwd2" placeholder="至少6位"></P> {% csrf_token %} <input type="hidden" name="email" value="{{ email }}"> <p><input type="submit" value="确认"></p> </form> <h1>{{ msg }}</h1> </p> </body> </html>
from users.views import ForgetPwdView,ResetView,ModifyView ...... urlpatterns = [ ..... #忘记密码 path('forget/',ForgetPwdView.as_view(),name='forget_pwd'), #重置密码 path('reset/<str:active_code>',ResetView.as_view(),name='reset'), path('modify/',ModifyView.as_view(),name='modify'), ...... ]
django 透過ajax完成郵箱使用者註冊、啟動帳號的方法
##
以上是django 開發忘記密碼透過郵箱找回功能範例_python的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

當使用Win11系統時,有時會遇到需要輸入管理員使用者名稱和密碼的提示,本文將探討在遇到這種情況時應該如何處理。方法一:1、點選【Windows標誌】,然後按【Shift+重啟】進入安全模式;或這樣進入安全模式:點選開始選單,選擇設定。選擇「更新與安全」;選擇「恢復」中的「立即重新啟動」;重新啟動進入選項後選擇-疑難排解-進階選項-啟動設定—&mdash

Passkey是一種更進階且安全的登入方式,可搭配Microsoft帳號使用。本文將指導您如何在Microsoft帳號中使用Passkey,介紹其優勢以及與密碼的差異。在深入細節之前,我們強調,如果您經常忘記密碼或需要快速登錄,Passkey通常會更適合您。什麼是Passkey?它們與密碼有什麼不同?密碼是一種進階且安全的身份驗證方式,可以取代傳統的密碼登入方式。每個應用程式都有獨特的金鑰,確保安全性,防止網路釣魚等威脅。使用者可以透過電子郵件和密碼確認身份,也可使用臉部辨識、指紋或安全金鑰進行

無線網路已成為人們生活中不可或缺的一部分、在當今數位化的世界中。保護個人無線網路的安全性卻顯得格外重要、然而。設定強密碼是確保你的WiFi網路不會被他人入侵的關鍵。保障你的網路安全,本文將詳細介紹如何使用手機修改路由器WiFi密碼。 1.開啟路由器管理頁面-在手機瀏覽器中開啟路由器管理頁面、透過輸入路由器的預設IP位址。 2.輸入管理員使用者名稱和密碼-以獲得存取權限,在登入頁面中輸入正確的管理員使用者名稱和密碼。 3.導覽至無線設定頁面-尋找並點選進入無線設定頁面,在路由器管理頁面中。 4.找到當前Wi

本文將探討如何解決密碼錯誤的問題,特別是在處理BitLocker警告時需要小心。當在BitLocker中多次輸入錯誤密碼以解鎖磁碟機時,就會觸發這個警告。通常,這個警告出現是因為系統設定了限制錯誤登入嘗試的策略(通常是允許3次登入嘗試)。在這種情況下,使用者會收到相應的警告訊息。完整的警告訊息如下:輸入的密碼不正確,請注意-連續輸入錯誤密碼會導致帳戶被鎖定,這是為了保護您的資料安全。如果需要解鎖帳戶,您將需要使用BitLocker恢復金鑰。密碼不正確,小心BitLocker警告當您登入電腦時收到

無線網路已成為我們生活中不可或缺的一部分、隨著網路的快速發展。為了保護個人資訊和網路安全,定期更改wifi密碼是非常重要的、然而。幫助大家更能保護家庭網路安全,本文將為大家介紹如何利用手機修改wifi密碼的詳細教學。 1.了解wifi密碼的重要性wifi密碼是保護個人資訊和網路安全的道防線,在網路時代、了解其重要性可以更好地理解為什麼需要定期修改密碼。 2.確認手機連接到wifi首先確保手機已連接到要修改密碼的wifi網路上,在修改wifi密碼之前。 3.開啟手機設定選單進入手機的設定選單、在手

前幾天表弟找我訴苦說用excel辛苦做了一大堆數據,結果後來被同事給修改了,當時不知道情況,發給老闆後被臭罵了一頓。這確實挺讓人無奈的,有的人就是看你不順眼,就是想故意整你,離開學校步入社會以後,你會發現背後捅刀子的人越來越多。除了安慰表弟幾句以外,我還給了表弟一個意見,如果怕以後再遇到這樣的事情,那就把excel表格設定密碼,除了你可以打開以外,別人誰都打不開。廣大網友們,如果你也怕自己的excel表格被別人偷偷修改,也該設定密碼的。 excel密碼表格如何設定密碼?跟我一起來了解一下吧! 1.

想必很多的用戶家裡都有那麼幾台不用的電腦,因為長時間不用完全忘了開機密碼,於是想知道一下,忘記密碼要怎麼操作呢?那就一起來看看吧。 win10開機密碼忘記按F2怎麼操作1、按下電腦的電源鍵,然後開機時按下F2(不同電腦品牌進入bios的按鍵也不同)。 2.在bios介面中,找到security選項(不同品牌電腦的位置可能有所不同)。一般都在頂部的設定選單中。 3.然後找到SupervisorPassword選項並且點選。 4.這時候用戶就可以看到自己的密碼了,同時找到旁邊的Enabled切換為Dis

1.在另一台電腦上下載安裝小白一鍵重裝系統工具,插入空u盤製作u盤啟動盤,具體的教程可以參考:2、把U盤啟動盤插到需要更改密碼的電腦重啟,按啟動熱鍵,一般啟動熱鍵為F12、F8、F9、F10、ESC其中一個。接著出現啟動介面,選擇U盤的選項回車進入。 3.選擇【1】啟動win10x64PE按回車確定。 4.選擇桌面上的密碼修改的工具,雙擊開啟。 5.接著出現帳戶名稱列表,選取需要更改密碼的帳戶開啟。 6.點選下方的修改密碼指令,輸入兩次新的密碼,然後點選OK,儲存變更。 7.最後拔掉U盤,重開機就可以正常
