一.注册,并实现验证码功能
先准备好注册的模板静态页面:https://download.csdn.net/download/qq_38175040/19548394
将模板页面放到template文件夹下面,然后在view里定义视图,去url里指定路径,都是老生常谈的东西了
去url里面写路径
最后注意一下register.html里的跳转语句
访问页面成功
接下来实现验证码功能
我们使用Django captcha,这是别人已经造好的轮子,可以到GitHub看看项目的使用文档等详情。
在命令行里安装django-simple-captcha
安装完成之后,接下来就是在setting里面配置一下
然后在manage.py命令行里使用命令migrate,或者在python console里输入命令python manage.py migrate
然后多了一个表,每个生成的验证码都会在这个数据表里显示
在url里加个由配置(必须是根目录下的路由配置)
在form里对注册表单进行限制,注意如果这个表单要验证码验证,forms表单里就一定不能少captcha这个字段
然后就算是GET请求也要调用这个form,把相应的表传到register.htm页面(因为就算是Get请求,也需要调用form表单里的captcha字段来生成验证码字符串)
在前端页面调用register_form.captcha
这个值,从而生成验证码
看一下GET请求的显示效果
并且数据表里会多一条记录
同时在源码里,这个验证码就是按数据库里这样,密文显示的
二.验证输入的验证码是否正确
OK,接下来就是让我们在前面输入框里面的值与给出的register_form.captcha
这个值做比较,如果相等,就可以注册成功了
这个既然是用的人家造好的轮子,验证码输入的是否正确自然也很简单
首先要在register.html里面把form的action指向写好的url
然后在view里写好获取注册的用户名和密码,并注册这条数据的代码
目前到这一步为止,我还没有写输入的验证码与给出的验证码校验的代码,实际上也不需要写
在目前位置的代码打上断点,调试一下看看:验证码也被看成是一条字段被验证了,输入错误直接连is_valid这行代码都过不了
再试试输入正确的验证码,这回is_valid通过了,进入添加注册用户的代码了
验证码正确就成功添加了一条新数据
贴一下代码:
forms.py
class RegisterForm_Judge(forms.Form):
email = fields.EmailField(
required=True
)
password = fields.CharField(
required=True,
min_length = 6
)
captcha = CaptchaField(
)
views.py
class VisitRegister(View):
def get(self,request):
register_form = RegisterForm_Judge()
return render(request,'register.html',{'register_form':register_form})
def post(self,request):
register_form = RegisterForm_Judge(request.POST)
if register_form.is_valid():
email = register_form.cleaned_data['email']
password = register_form.cleaned_data['password']
new_user = UsersModel(username=email,email=email,password=make_password(password))
new_user.save()
else:
return HttpResponse('字段格式错误')