Django实战搭建mock系统(五)_验证码功能

一.注册,并实现验证码功能

先准备好注册的模板静态页面: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('字段格式错误')
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LSQ的测试日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值