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发送邮件的 ...
随机推荐
- 在 Debian 上的 SQL Server 的安裝指引
我想在 linux 环境下尝试一下 Microsoft SQL Server,但是微软只发布了针对 Red Hat,SUSE,Ubuntu 和 Docker 引擎的.我平时习惯使用 Debian, U ...
- [HeadFrist-HTMLCSS学习笔记]第七、八章
[HeadFrist-HTMLCSS学习笔记]第七章CSS入门:加一点样式 重点噻 段落添加背景颜色 p{ background-color: red; } 文本颜色 p{ color: ,maroo ...
- git强制推送命令
git push -f origin master 注释: origin远程仓库名,master分支名,-f为force,意为:强行.强制. 这行命令的意思就是强制用本地的代码去覆盖掉远程仓库的代码, ...
- Shell脚本之三 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推-- 实例 向脚本传递三个参数,并分 ...
- Cmder下ssh免密登录配置
1.本地生成ssh-key 在本地cmder终端下运行下面的命令生成ssh的公钥和私钥文件: ssh-keygen -t rsa 其中,.ssh/id_rsa为私钥文件,留在本地使用,而.ssh/id ...
- 在博文顶部添加文章字数及阅读时间信息:阅读本文需要xx分钟
1.在博客园设置中,页首Html代码中添加js代码 2.js代码如下 <script type="text/javascript"> $("#cnblogs_ ...
- SSM 整合配置
目录 1. Maven : pox.xml 2. Web container : web.xml 3. Spring context : dbconfig.properties + applicati ...
- vs中使用tfs创建项目
1.打开“Team Explorer”,点击“Home”,选择"Project"->"New Team Project",操作如下图: 2.输入项目名称. ...
- MQTT --- 操作行为
会话状态 为实现QoS等级1和QoS等级2协议流,客户端和服务端需要将状态与客户标识符相关联,这被称为会 话状态.服务端还将订阅信息存储为会话状态的一部分.会话可以跨越一系列的网络连接.它持续到最新的 ...
- IDEA开发React环境配置
概述 习惯了IDEA写代码,也不想在下一个webstorm,而且IDEA是webstorm的父集,webstorm能干的,IDEA应该也是可以的.本篇随便记录下idea下的react的环境搭建. 环境 ...