django项目中使用邮箱找回密码功能
本文使用qq邮箱,需要登录邮箱,在设置-账户里面开启SMTP服务,要记下授权码
前端html
{#找回密码的表单#}
<form action="" method="post" id="login">
{% csrf_token %}
<input type="text" class="name" name="member_name" Placeholder="Username" required=""/>
<input type="text" class="email" name="member_email" Placeholder="email" required=""/>
<div class="login-agileits-bottom">
<h6><a href="javascript:;" type="button" id="onsubmit">提交</a></h6>
</div>
</form>
{#找回密码的表单结束#}
前端js
{# 找回密码的jquery #}
$(document).ready(function () {
$('#onsubmit').click(function () {
$.post('/blog/findpwd/', $('#login').serialize(), function (data) {
if (data['status'] == 0) {
layer.msg(data.info,{
time:2000
});
{#location.href = "/blog/login/";#}
} else {
layer.msg(data['info'])
}
}, 'json')
})
});
{# 找回密码的jquery结束 #}
路由
# 找回密码
re_path('findpwd/', login.findpwd,name='findpwd'),
方法
def findpwd(request):
from django.core.mail import send_mail
from mysite7 import settings
import threading
from blog.utils import function # 引入自定义的验证码
if request.method == 'POST':
res = {'status': None, 'info': None}
member_name = request.POST.get('member_name')
member_email = request.POST.get('member_email')
member_obj = Member.objects.filter(member_name=member_name, member_email=member_email).first() if member_obj:
# 随机生成新密码
num = function.range_num(6)
new_pwd = Member.objects.filter(member_name=member_name).update(member_pwd=make_password(num))
if new_pwd:
res['status'] = 0
res['info'] = '邮件已发送,注意查收'
t = threading.Thread(target=send_mail, args=(
'%s在找回密码' % member_name,
'您的密码已经被重置,新密码为%s' % num,
settings.EMAIL_HOST_USER,
['%s' % member_obj.member_email]
))
t.start()
else:
res['status'] = 1
res['info'] = '密码找回失败'
return HttpResponse(json.dumps(res))
else:
res['status'] = 3
res['info'] = '用户/邮箱不存在'
return HttpResponse(json.dumps(res))
return render(request, 'blog/findPwd.html')
项目目录下创建untils文件夹,文件夹下创建function.py文件,封装生成的随机密码
# 随机数
def range_num(num):
# 定义一个种子,从这里面随机拿出一个值,可以是字母
seeds = ""
# 定义一个空列表,每次循环,将拿到的值,加入列表
random_num = []
# choice函数:每次从seeds拿一个值,加入列表
for i in range(num):
random_num.append(random.choice(seeds))
# 将列表里的值,变成四位字符串
return "" . join(random_num)#
settings.py文件中设置
EMAIL_HOST='smtp.qq.com'
EMAIL_PORT=465
EMAIL_HOST_USER='3028981710@qq.com'#账号
EMAIL_HOST_PASSWORD='kimtvyyymbwodgaf'#密码(授权码)
EMAIL_USE_SSL=True
页面效果

done。
django项目中使用邮箱找回密码功能的更多相关文章
- spring mvc下实现通过邮箱找回密码功能
1功能分析 通过spring mvc框架实现通过邮箱找回密码. 2 实现分析 主要是借助某个邮箱的pop3/smtp服务实现的邮件代发功能. 3 源码分析 3.1首先在用户表对应的javabean中加 ...
- php邮箱找回密码功能
原理很简单: 用户找回密码的时候,填写用户名,程序得到用户名便可以去数据库取出用户对应的密码以及当时填写的邮箱, 根据用户名和密码生成一个key=md5(username+password),然后$s ...
- javaWeb实现使用邮箱邮件找回密码功能
JSP+Jmail+JavaBean 发邮件(转)2010-08-23 18:052007年04月14日 14:32/* * SendMail.java * * Created on 2007年3月3 ...
- AspNetCore-MVC实战系列(二)之通过绑定邮箱找回密码
AspNetCore - MVC实战系列目录 . 爱留图网站诞生 . AspNetCore - MVC实战系列(一)之Sqlserver表映射实体模型 . AspNetCore-MVC实战系列(二)之 ...
- 【技术博客】JWT的认证机制Django项目中应用
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. JWT的认证机制Django项目中应用 这篇技术博客基于软 ...
- PHP会员找回密码功能实现实例介绍
设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名时,点击登录页面的“找回密码”超链接,打开表单,并输入注册用的E-MAIL邮箱,提交. 3. ...
- django项目基于钩子验证的注册功能
前端html <div class="agile-row"> <h3>注册</h3> {# 注册的开始#} <div class=&quo ...
- PHP会员找回密码功能的简单实现
文章来自:博客 http://www.jb51.net/article/91944.htm 设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名 ...
- Java实现邮箱找回密码 --转载
通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的 ...
随机推荐
- pose_graph的优化变量和优化函数
1.优化变量 优化变量就是vertex,也就是pose,pose-graph的优化目标就是,调整所有vertex的位置来尽量满足所有边的约束. 上述的还是表层的理解,深一步理解: pose-graph ...
- salt 安装
list: centos 6.5 x86_64 172.18.39.28 mast.test.com 172.18.39.27 mini.test.com master:#sudo yum insta ...
- Solr7.x学习(1)-安装
1.下载solr-7.7.2.tgz和jdk-8u221-linux-x64.tar.gz 2.将文件解压到/usr/local目录 cd /usr/local/ tar -zxvf jdk-8u22 ...
- 【06月04日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2019年06月04日 之间,滚动市盈率历史新低排名. 上市三年以上的公司,2019年06月04日市盈率在300以下的公司. 1 - 阳光照明(SH600261) - 历史 ...
- 测试效率加倍提升!shell 高阶命令快来 get 下!
背景 目前大部分的项目都是部署在Linux系统上,作为测试,掌握常用Linux命令是必须的技能.很多的工作了好几年的测试人员可能还只会简单的ls.cd.cat等等这些命令,这些命令是可以应付工作的大部 ...
- Python【每日一问】18
问: [基础题]:请解释新式类跟经典类,并说明它们的区别[提高题]:请解释Python垃圾回收机制 答: [基础题]:请解释新式类跟经典类,并说明它们的区别 1.新式类都是继承内置 object 对象 ...
- AKKA HTTP 简单示例
AKKA HTTP 简单示例 依赖包: compile("com.typesafe.akka:akka-http_2.13:10.1.8") compile("com.t ...
- sqlException 使用relace 替换单引号
我们从前端输入数据的时候,可能会输入一些 单引号 ,的字符 导致直接进行执行sql 语句保存的时候出现错误 如: 输入的有 单引号 保存按钮小代码 <asp:Button ID="bt ...
- python3使用smtplib发送邮件,带xlsx附件
一.概述 最近在做一个统计报表,需要发送邮件,并带附件的. 在之前的文章中 https://www.cnblogs.com/xiao987334176/p/10022026.html 已经实现了发送邮 ...
- K8S学习笔记之Kubernetes 配置管理 ConfigMap
0x00 概述 很多情况下我们为某一应用做好镜像,当我们想修改其中的一些参数的时候,就变得比较麻烦,又要重新制作镜像,我们是不是有一种方式,让镜像根据不同的场景调用我们不同的配置文件呢,那我们就需要用 ...