忘记密码功能成功修改过程如下:
在登录页面点击忘记密码按钮,进入忘记密码页面,填写账户和密码,提交表单,后台实现发送邮件到邮箱,页面跳转发送邮件成功的页面
点击邮箱的重置密码链接,跳转到重置密码页面,填写新密码和确定密码,点击提交,密码修改成功,还是跳转到登录页面
一、进入忘记密码页面
1、模板配置
新建forgetpwd.html,配置css,js,images等文件
以css文件为例
2、配置模板的url
3、编写views.py,新建ForgetPwdView
4、配置login.html页面中的忘记密码按钮的链接
5、测试以上是否配置正确
进入登录页面,点击忘记密码按钮,跳转到忘记密码页面,页面显示完整,则测试成功
页面的验证码没有显示
显示验证码
编写forms.py
将数据传给模板
前端接收数据
二、发送邮件
忘记密码页面也是一个表单,在forms.py进行表单数据验证,在views.py中写提交的逻辑并发送邮件到邮箱,还需要配置url和模板
1、编写post方法,发送重置链接到邮箱,发送成功后跳转到发送成功的页面send_success.html
编写post逻辑
完善email_send.py
错误信息显示,数据回填
2、测试以上逻辑
用之前注册过的用户测试
打断点调试
测试成功,收到邮件,页面跳转到发送成功的页面
三、点击重置密码链接后,编写重置密码功能
1、点击重置密码链接,编写点击的逻辑get()
配置url
新建重置密码页面password_reset.html,在模板中添加input,要将修改哪个用户告诉后台,因为用户是在未登陆的状态下修改密码的
点击链接进入密码重置页面,编写逻辑
测试
查看重置密码页面源码
2、进入重置密码页面后就是写重置密码的逻辑,还是一个表单
forms.py验证表单数据
模板配置
配置提交后的url,这里无法重用reset的链接,因为post时active_code参数传递不了,所以另写一个
ModifyPwdView,实现表单提交逻辑
active_code参数传不进来
url配置
重置密码逻辑ModifyPwdView