博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找回密码forget_password
阅读量:7124 次
发布时间:2019-06-28

本文共 3434 字,大约阅读时间需要 11 分钟。

  1.在urls.py里面添加:

from users.views import RegisterView, ActiveUserView, ForgetPwdView
url(r'forget/$', ForgetPwdView.as_view(), name='forget_pwd'), 2.在views.py文件里面:
'''找回密码''' class ForgetPwdView(View):     def get(self,request):         forget_form = ForgetForm()         return render(request,'forgetpwd.html',{'forget_form':forget_form},)     def post(self,request):         forget_form = ForgetForm(request.POST)         if forget_form.is_valid():             email = request.POST.get('email',None)             print(email)             send_register_email(email,'forget')             return render(request,'send_success.html')         else:             return render(request, 'forgetpwd.html',{'forget_form':forget_form},) 3.在forms.py文件里面添加:
class ForgetForm(forms.Form):     email = forms.EmailField(required=True)     captcha = CaptchaField(error_messages={'invalid':u'验证码错误'})
4.在app/utils/email_send.py文件里面:
elif send_type == 'forget':     email_title = '慕学在线网密码重置链接'     email_body = '请点击下面的链接重置你的密码:http://127.0.0.1:8000/reset/{0}'.format(code)     send_status = send_mail(email_title, email_body, EMAIL_FROM, [email])     if send_status:         pass
5.在html文件下的 验证码下面添加:
{
{ register_form.captcha }} 要是这个样子出错的话,就改用HTML文本: 点击获取验证码
找到表单数据,在form里面加入: action="{% url 'login' %}" method="post" 在表单结尾之前加入:{% csrf_token %} 注意,表单里面的name属性要和views.py文件里面要传递的属性要相同 判断返回页面的样式,是否显示的是登陆状态,
 
 
{% if register_form.errors.password %}errorput{% endif %} 新建一个div 来放置报错信息:
{% for key,error in register_form.errors.items%}{
{ error }}{% endfor %}{
{ msg }}
6.为了用户体验好,我们在form表单里面添加一个value属性
value='{
{ register_form.email.value }}' 7.在urls.py文件配置路由,来处理找回密码的链接
url(r'^reset/(?P
.*)/$', ResetView.as_view(), name='reset'), 8.在views.py文件立里面添加:
'''找回密码''' class ResetView(View):     def get(self,request,active_code):         all_records = EmailVerifyRecord.objects.filter(code=active_code)         if all_records:             for record in all_records:                 email = record.email                 return render(request, 'password_reset.html',{'email':email},)         else:             return render(request,'active_fail.html')         return render(request,'login.html') 9.在forms.py里添加:
class ModifyPwdForm(forms.Form):     email = forms.EmailField(required=True)     password = forms.PasswordInput()     password2 = forms.PasswordInput() 10.在html文件里面添加 :
在表单结尾之前加入:{% csrf_token %} 11.在views.py里面:
'''验证密码''' class ModifyPwdView(View):     def post(self,request):         modify_form = ModifyPwdForm(request.POST)         if modify_form.is_valid():             pwd1 = request.POST.get('password1',None)             pwd2 = request.POST.get('password2', None)             email = request.POST.get('email','1')             print (email)             if pwd1 != pwd2:                 return render(request,'password_reset.html',{'email':email,'msg':'两次密码不相同'})             user = UserProfile.objects.get(email=email)             user.password = make_password(password=pwd2)             user.save()             return render(request,'login.html')         else:             email = request.POST.get('email', None)             return render(request, 'password_reset.html', {'email': email, 'modify_form':modify_form}) 12.在urls.py里面:
url(r'modify_pwd/$', ModifyPwdView.as_view(), name='modify_pwd'), 13.在HTML文件里面:
找到表单数据,在form里面加入: action="{% url 'modify_pwd' %}" method="post"
 
 
 

转载于:https://www.cnblogs.com/chenyang13677/p/7772723.html

你可能感兴趣的文章
原文地址是:http://www.itokit.combbsviewthread.phptid=1876
查看>>
43:数据分类
查看>>
BZOJ 4196 软件包管理器
查看>>
数组的扩容
查看>>
easyui的datagird动态设置当前页数
查看>>
修改Ubuntu的aptget源为阿里源的方法
查看>>
Spy++使用介绍
查看>>
Intellij IDEA配置tomcat(非maven项目)
查看>>
通过ADG技术迁移单实例到rac集群上
查看>>
Socket中的异常和参数设置
查看>>
javascript资料
查看>>
python 进入windows指定路径,创建文件
查看>>
git 本地代码到github
查看>>
等价类划分法设计测试用例
查看>>
js 大图轮播
查看>>
二分搜索首次出现被搜索元素的位置
查看>>
oracle密码过期
查看>>
[SDOI2011]染色 BZOJ2243 树链剖分+线段树
查看>>
DNS检测
查看>>
ssl 握手过程【收藏】
查看>>