Django实现发送邮件找回密码功能


Posted in Python onAugust 12, 2019

在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过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)

Django实现发送邮件找回密码功能

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

Django实现发送邮件找回密码功能

发送邮件实现

在应用(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实现发送邮件找回密码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python Django连接MySQL数据库做增删改查
Nov 07 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
python 基础教程之Map使用方法
Jan 17 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
django 模型字段设置默认值代码
Jul 15 Python
python语言实现贪吃蛇游戏
Nov 13 Python
python里glob模块知识点总结
Jan 05 Python
使用pyecharts生成Echarts网页的实例
Aug 12 #Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 #Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 #Python
Python实现网页截图(PyQT5)过程解析
Aug 12 #Python
python实现知乎高颜值图片爬取
Aug 12 #Python
python3 enum模块的应用实例详解
Aug 12 #Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 #Python
You might like
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP中比较时间大小实例
2014/08/21 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
四群教育工作实施方案
2014/03/26 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书