邮箱地址验证的几种方式:在注册中添加一个发送验证码的按钮:register.html还在register.html底部添加发送验证码的验证功能(同bind_email.html):效果如下:在forms.py的bind_email类中添加验证码的验证方法:defclean(self):#判断用户是否登录ifself.request.user.is_authenticated:self.cleaned_data['user']=self.request.user其他:。ValidationError('用户未登录')#判断用户是否绑定了邮箱ifself.request.user.email!='':raiseforms.ValidationError('您已经绑定了邮箱')#判断验证码code=self.request.session.get('bind_email_code','')verification_code=self.cleaned_data.get('verification_code','')如果不是(code!=''andcode==verification_code):raiseforms.ValidationError('verificationcode不正确')返回self.cleaned_data是因为发送验证码的sessionkey是form中的验证码是bind_email_code,而views.py中发送验证码函数保存的验证码key也是bind_email_code,以及后面的bind_email_code是用来注册的验证码,前面的是绑定的验证码,两者应该不一样,所以需要区分一下:改前端返回的验证码名称:addsend_for从views.py中的send_verification_code函数中获取前端发送过来的数据,然后进行如下验证代码变量名也修改:修改bind_email.html中的发送验证码:在同一个register.html中发送验证码:在forms.py中添加判断验证码的clean方法:然后传入请求:now可以尝试使用新的邮箱Try:但是现在注册成功后session并没有被删除,所以在views.py中的register中添加一个clearsession:同时删除bind_email方法中的session:新功能:既用户和邮箱可以登录,修改form.pyLoginForm类中的相关内容:尝试用注册的邮箱登录成功,这里是成功;密码修改功能的实现:在forms.py:中加入ChangePassWordForm的形式,然后修改views.py中的change_password方法:在user_info中。调用html中的change_password方法:也调用base.html中的change_password方法:urls.py中添加change_password的路由:修改密码看是否成功:这个也成功新增功能:重置密码验证方式忘记密码时是通过邮箱验证在forms.py中添加ForgotPasswordForm表单(类),在urls.py中添加路由:在views.py中添加处理方法forgot\_password:在user/中添加forgot\_password.html文件模板/用户,编写代码:{%extends'form.html'%}{%blockother_buttons%}
