欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django實(shí)現(xiàn)發(fā)送郵件找回密碼功能

 更新時(shí)間:2019年08月12日 16:15:00   作者:離島  
在各大網(wǎng)站上,一定都遇到過(guò)找回密碼的問(wèn)題,通常采用的方式是通過(guò)發(fā)送帶有驗(yàn)證碼的郵件進(jìn)行身份驗(yàn)證,本文將介紹通過(guò)Django實(shí)現(xiàn)郵件找回密碼功能,需要的朋友可以參考下

在各大網(wǎng)站上,一定都遇到過(guò)找回密碼的問(wèn)題,通常采用的方式是通過(guò)發(fā)送帶有驗(yàn)證碼的郵件進(jìn)行身份驗(yàn)證,本文將介紹通過(guò)Django實(shí)現(xiàn)郵件找回密碼功能。

找回密碼流程

功能流程:

1.首先在用戶登錄界面,添加“忘記密碼”鏈接

2.生成隨機(jī)驗(yàn)證碼,發(fā)送郵件到用戶信息中填寫郵箱

3.在重置密碼頁(yè)面,驗(yàn)證填寫驗(yàn)證碼是否需匹配

4.重置密碼成功,重新進(jìn)入到登錄頁(yè)面

技術(shù)點(diǎn):

1.發(fā)送郵件使用Django內(nèi)置的django.core.mail實(shí)現(xiàn)

2.重置密碼頁(yè)面驗(yàn)證驗(yàn)證碼填寫是否匹配,提前將發(fā)送的驗(yàn)證碼進(jìn)行緩存,再進(jìn)行匹配

發(fā)送郵件配置

在setting.py中,添加郵箱配置:

EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.163.com' 
EMAIL_PORT = 465
EMAIL_HOST_USER = 'xxx@163.com' # 帳號(hào)
EMAIL_HOST_PASSWORD = 'xxx' # 密碼
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

其中EMAIL_HOST根據(jù)郵箱進(jìn)行設(shè)置,如果為QQ郵箱,即“smtp.qq.com”。

另外在郵箱中有兩處配置:

1.開(kāi)啟POP3/SMTP服務(wù)(設(shè)置->POP3/SMTP/IMAP)

2.配置中的密碼并不是郵箱的登錄密碼,填寫的是授權(quán)碼

發(fā)送郵件實(shí)現(xiàn)

在應(yīng)用(user)下的views.py中,進(jìn)行驗(yàn)證碼的生成與發(fā)送郵件操作。這里關(guān)于基礎(chǔ)項(xiàng)目搭建、路由配置不再進(jìn)行贅述。

生成隨機(jī)驗(yàn)證碼方法:

#隨機(jī)生成驗(yàn)證碼
def random_str(randomlength=8):
 str = ''
 chars = 'abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
 length = len(chars) - 1
 random = Random()
 for i in range(randomlength):
  str += chars[random.randint(0, length)]
 return str

發(fā)送郵件方法:

#發(fā)送郵件找回密碼 
def findpwdView(request):
 if request.method=="GET":
  email_title = "找回密碼"
  code=random_str()#隨機(jī)生成的驗(yàn)證碼
  request.session["code"]=code #將驗(yàn)證碼保存到session
  email_body = "驗(yàn)證碼為:{0}".format(code)
  send_status = send_mail(email_title, email_body,"xxxx@163.com",["xxxx@qq.com",])
  msg="驗(yàn)證碼已發(fā)送,請(qǐng)查收郵件"
 else:
  username=request.POST.get("username")
  password=request.POST.get("password")
  user=User.objects.get(username=username)
  code=request.POST.get("code") #獲取傳遞過(guò)來(lái)的驗(yàn)證碼
  if code==request.session["code"]:
   user.set_password(password)
   user.save()
   del request.session["code"] #刪除session
   msg="密碼已重置"
 return render(request,"findpwd.html",locals())

總結(jié)

以上所述是小編給大家介紹的Django實(shí)現(xiàn)發(fā)送郵件找回密碼功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • Python Django框架模板渲染功能示例

    Python Django框架模板渲染功能示例

    這篇文章主要介紹了Python Django框架模板渲染功能,結(jié)合實(shí)例形式分析了Django框架模板渲染相關(guān)的配置、視圖調(diào)用、變量賦值等相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • Python中的None與 NULL(即空字符)的區(qū)別詳解

    Python中的None與 NULL(即空字符)的區(qū)別詳解

    這篇文章主要介紹了Python中的None與 NULL(即空字符)的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python中sympy庫(kù)求常微分方程的用法

    python中sympy庫(kù)求常微分方程的用法

    這篇文章主要介紹了python中sympy庫(kù)求常微分方程的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • PyCharm無(wú)法引用自身項(xiàng)目解決方式

    PyCharm無(wú)法引用自身項(xiàng)目解決方式

    今天小編就為大家分享一篇PyCharm無(wú)法引用自身項(xiàng)目解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 淺談Python中的作用域規(guī)則和閉包

    淺談Python中的作用域規(guī)則和閉包

    本文簡(jiǎn)單講解了PYTHON的閉包,作用域的基本知識(shí)配合實(shí)例簡(jiǎn)單明了,適合初學(xué)者
    2018-03-03
  • python通過(guò)pil模塊將raw圖片轉(zhuǎn)換成png圖片的方法

    python通過(guò)pil模塊將raw圖片轉(zhuǎn)換成png圖片的方法

    這篇文章主要介紹了python通過(guò)pil模塊將raw圖片轉(zhuǎn)換成png圖片的方法,實(shí)例分析了Python中pil模塊的使用技巧,并Image.fromstring函數(shù)進(jìn)行了較為詳盡的分析說(shuō)明,需要的朋友可以參考下
    2015-03-03
  • python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注

    python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注

    這篇文章主要介紹了python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注,幫助大家更好的利用Matplotlib繪制圖表,感興趣的朋友可以了解下
    2021-01-01
  • Python通過(guò)Socket手動(dòng)實(shí)現(xiàn)HTTP協(xié)議

    Python通過(guò)Socket手動(dòng)實(shí)現(xiàn)HTTP協(xié)議

    這篇文章主要為大家詳細(xì)介紹了Python如何通過(guò)Socket手動(dòng)實(shí)現(xiàn)HTTP協(xié)議,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一
    2024-03-03
  • Jupyter notebook 不自動(dòng)彈出網(wǎng)頁(yè)的解決方案

    Jupyter notebook 不自動(dòng)彈出網(wǎng)頁(yè)的解決方案

    這篇文章主要介紹了Jupyter notebook 不自動(dòng)彈出網(wǎng)頁(yè)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python 操作 ElasticSearch的完整代碼

    Python 操作 ElasticSearch的完整代碼

    python提供了操作ElasticSearch 接口,因此要用python來(lái)操作ElasticSearch,這篇文章主要介紹了Python 操作 ElasticSearch,需要的朋友可以參考下
    2019-08-08

最新評(píng)論