django项目中使用邮箱找回密码功能
发布时间:2020-12-20 10:58:42 所属栏目:Python 来源:网络整理
导读:本文使用qq邮箱,需要登录邮箱,在设置-账户里面开启SMTP服务,要记下授权码 前端html { # 找回密码的表单#} form action= "" method= " post " id= " login " { % csrf_token % } input type= " text " class = " name " name= " member_name " Placeholder
本文使用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 = "1234567890" # 定义一个空列表,每次循环,将拿到的值,加入列表 random_num = [] # choice函数:每次从seeds拿一个值,加入列表 for i in range(num): random_num.append(random.choice(seeds)) # 将列表里的值,变成四位字符串 return "" . join(random_num)#5454 settings.py文件中设置 EMAIL_HOST=‘smtp.qq.com‘ EMAIL_PORT=465 EMAIL_HOST_USER=‘[email?protected]‘#账号 EMAIL_HOST_PASSWORD=‘kimtvyyymbwodgaf‘#密码(授权码) EMAIL_USE_SSL=True 页面效果 done。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |