在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能。

找回密码流程

功能流程:

1.首先在用户登录界面,添加“忘记密码”链接

2.生成随机验证码,发送邮件到用户信息中填写邮箱

3.在重置密码页面,验证填写验证码是否需匹配

4.重置密码成功,重新进入到登录页面

技术点:

1.发送邮件使用Django内置的django.core.mail实现

2.重置密码页面验证验证码填写是否匹配,提前将发送的验证码进行缓存,再进行匹配

发送邮件配置

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

EMAIL_USE_SSL = True

EMAIL_HOST = 'smtp.163.com'

EMAIL_PORT = 465

EMAIL_HOST_USER = 'xxx@163.com' # 帐号

EMAIL_HOST_PASSWORD = 'xxx' # 密码

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

其中EMAIL_HOST根据邮箱进行设置,如果为QQ邮箱,即“smtp.qq.com”。

另外在邮箱中有两处配置:

1.开启POP3/SMTP服务(设置->POP3/SMTP/IMAP)

2.配置中的密码并不是邮箱的登录密码,填写的是授权码

发送邮件实现

在应用(user)下的views.py中,进行验证码的生成与发送邮件操作。这里关于基础项目搭建、路由配置不再进行赘述。

生成随机验证码方法:

#随机生成验证码

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

发送邮件方法:

#发送邮件找回密码

def findpwdView(request):

if request.method=="GET":

email_title = "找回密码"

code=random_str()#随机生成的验证码

request.session["code"]=code #将验证码保存到session

email_body = "验证码为:{0}".format(code)

send_status = send_mail(email_title, email_body,"xxxx@163.com",["xxxx@qq.com",])

msg="验证码已发送,请查收邮件"

else:

username=request.POST.get("username")

password=request.POST.get("password")

user=User.objects.get(username=username)

code=request.POST.get("code") #获取传递过来的验证码

if code==request.session["code"]:

user.set_password(password)

user.save()

del request.session["code"] #删除session

msg="密码已重置"

return render(request,"findpwd.html",locals())

总结

以上所述是小编给大家介绍的Django实现发送邮件找回密码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

django重置密码发送html邮件,Django实现发送邮件找回密码功能相关推荐

  1. django重置密码发送html邮件,django 开发忘记密码通过邮箱找回功能示例

    一.流程分析: 1.点击忘记密码====>forget.html页面,输入邮箱和验证码,发送验证链接网址的邮件====>发送成功,跳到send_success.html提示 2.到邮箱里找 ...

  2. python 发邮件 无需密码_Django实现发送邮件找回密码功能

    在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能. 找回密码流程 功能流程: 1.首先在用户登录界面,添加 ...

  3. php发邮箱验证码找回密码,织梦dede会员通过邮箱找回密码方法

    首先打开文件: /member/resetpassword.php 这是织梦会员找回密码的核心文件! 在148行有这么一句: showmsg('对不起,临时密码错误', '-1');   看来问题就在 ...

  4. linux 开机连接wifi密码忘了怎么办,WIFI密码忘了怎么办 两种方法轻松找回密码

    WIFI密码我们设置过一次之后基本上就是永久自动连接了,久而久之,自己也忘记了密码是多少了.当有客人来你家的时候,询问你要WIFI密码你却无从说起.WIFI密码忘了怎么办,今天小编要交大家几个方法找回 ...

  5. 网页忘记密码怎么办?一招帮你找回密码!

    有没有遇到过这种情况,网页上还保存着密码,但是就是忘记了密码是多少,想着换电脑或者退出登录后就怎么办? 其实找回密码非常简单,选择密码,然后鼠标右键点击检查. 把Password改成text,然后回车 ...

  6. python发送qq邮件列表_python 发送邮件

    #!/usr/bin/env python#-*- coding: utf-8 -*-#导入smtplib和MIMEText importsmtplibfromemail.mime.text impo ...

  7. iphone怎么查看wifi密码_WiFi密码忘了怎么办?一秒找回密码

    很多小伙伴经常会因为换手机等原因,而忘了常用的WiFi密码,今天就给大家介绍下手机怎么查看WiFi密码,赶紧一起来看下吧. 第一步,找一部已连接当前WiFi的安卓手机,找到并点击已连接的WiFi名称. ...

  8. iphone12锁屏密码忘记了怎么办 (苹果12如何找回密码)

    iphone12锁屏密码忘记了怎么办?相信大家都知道苹果手机本身的安全性能是很高的.但是有些用户会将自己设置的锁屏密码给忘记了.这时应该怎么办?不用担心.今天换换就以iphone12手机为例.教下大家 ...

  9. Yii2.0-发邮件找回密码

    yii发邮件可以调用yii自带的邮件类,只需要自己有一个邮箱然后做一些相关的配置然后调用即可. 我这里以163网易邮箱为例. 设置邮箱 进入邮箱主页面 设置->POP3/SMTP/IMAP 进入 ...

最新文章

  1. 可恶的MSSQL 内部 SQL Server 错误。(臭BUG)
  2. Could not decode a text frame as UTF-8 的解决
  3. Mcad学习笔记之序列化(2进制和Soap序列化)
  4. linux构建web主机
  5. 成熟期滞后状态的云计算:应重视云存储及安全策略
  6. Nancy之Forms验证
  7. Docker-HealthCheck指令探测ASP.NET Core容器健康状态
  8. 互联网晚报 | 10月23日 星期六 | 恒大宣布全面实施现楼销售;华为开发者大会2021开幕;家乐福中国首家会员店正式开业...
  9. 训练日志 2018.10.7
  10. 理论基础 —— 排序 —— 直接插入排序
  11. EasyUI 1.4.4 DataGrid(大数据量) bufferview滚动时不加载下一页数据解决方案
  12. java的dequeue_$.queue() 与 $.dequeue() -- 队列
  13. Ajax学习笔记-客户端模板引擎-9
  14. python教师管理系统,Python面向对象实战:学生教师信息管理(3)
  15. 监督学习之分类学习:线性分类器
  16. linux 繁体转简体,linux2 简体中文转繁体
  17. 2017北大数学夏令营第一天第二题的解答
  18. HashMap底层——解决Hash冲突(链地址法)
  19. pycharm中Crtl+Shift+F10快捷键问题
  20. github项目推荐:少儿图形化编程启蒙游戏

热门文章

  1. Spring Cloud Stream消费失败后的处理策略(二):自定义错误处理逻辑
  2. 来自95后的天池中间件大赛总结
  3. 查询mysql上传大小限制_解决数据库phpmyadmin中上传最大限制:2,048 KB
  4. php javascript wav波形绘制,PHP分析.wav文件并绘制png格式的波形图
  5. 未转变者空投指令服务器,未转变者空投指令 | 手游网游页游攻略大全
  6. mxnet与pytorch比较 bn层
  7. input val >=zero input_val <=one
  8. vs 设置 调试目录
  9. qthread destroyed while thread is still running
  10. python 文件名相关