Python通过Django实现用户注册和邮箱验证功能代码
本文主要向大家分享了Python编程中通过Django模块实现用户注册以及邮箱验证功能的简单介绍及代码实现,具体如下。
用户注册:
类似于用户登陆,同样在users.views.py中添加RegisterView(View)类,其中对表单的get和post作出处理。
如果是get方法,重新返回register页面让用户进行填写。
defget(self,request): register_form=RegisterForm() returnrender(request,"register.html",{'register_form':register_form})
method=POST时,用户注册逻辑:
defpost(self,request): #实例化form,验证每个字段是否合法 register_form=RegisterForm(request.POST) pre_check=register_form.is_valid() ifpre_check: #取出email和password user_name=request.POST.get("email","") pass_word=request.POST.get("password","") #实例化用户,然后赋值 user_profile=UserProfile() user_profile.username=user_name user_profile.email=user_name #新建用户为非活跃用户,可通过验证变为活跃用户 user_profile.is_active=False #将明文转换为密文赋给password user_profile.password=make_password(pass_word) user_profile.save()#保存到数据库 #此处加入了邮箱验证的手段 send_register_email(user_name,"register") returnrender(request,"login.html") else: #form表单验证失败,将错误信息传给前端 returnrender(request,"register.html",{"register_form":register_form})
在form.py中添加RegisterForm类对给出表单处理类:
classRegisterForm(forms.Form): #不能为空 email=forms.EmailField(required=True) password=forms.CharField(required=True,min_length=6,max_length=20) #出错信息 captcha=CaptchaField(error_messages={"invalid":u"验证码错误"})
以下为对应的前端代码,其中添加了了django的模版用法,均以{%%}的形式在html中加入逻辑,避免了python代码的直接插入,方便维护和修改。