Django中生成验证码并匹配

先在虚拟机中或者(windows中)虚拟环境下创建库,然后在Django中创建app模组,笔者在这里创建的是user模组。然后在文件中创建templates文件。再创建一个存储html文件的文件夹:
第一步:在数据库中创建表:

class YanZhengMa(models.Model):
   yanzhengma = models.CharField(max_length=4)
   def __str__(self):
       return  self.objects

然后进行迁移操作。

第二步:在views文件中敲入产生随机数字图片

def yanzhengmashengcheng(request):

    # 返回随机数字
    # def numRandom():
    #     return random.randint(0, 9)

    # 随机颜色
    # def colorRandom1():
    #     return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

    # 随机长生颜色2
    # def colorRandom2():
    #     return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

    width = 60 * 4
    height = 60
    image = Image.new('RGB', (width, height), (255, 255, 255))
    # 创建font对象
    font = ImageFont.truetype('/home/python/Downloads/pycharm-2017.3.4/jre64/lib/fonts/ARIAL.TTF', 36)

    # 创建draw对象
    draw = ImageDraw.Draw(image)
    # 填充每一个颜色
    for x in range(width):
        for y in range(height):
            draw.point((x, y), fill=(random.randint(64, 255), random.randint(64, 255), random.randint(64, 255)))
    b=''

    # 输出文字
    for t in range(4):
        a=chr((random.randint(65, 90)))
        b+=a
        draw.text((60 * t + 10, 10), a, font=font, fill=(random.randint(32, 127), random.randint(32, 127), random.randint(32, 127)))

    # 模糊
    new_yanzhengma = YanZhengMa()
    new_yanzhengma.password = b
    new_yanzhengma.save()
    # request.session['password'] = b
    image = image.filter(ImageFilter.BLUR)
    buf = io.BytesIO()
    # 将图片保存在内存中,文件类型为png
    image.save(buf, 'png')
    # 将内存中的图片数据返回给客户端,MIME类型为图片png
    return HttpResponse(buf.getvalue(), 'image/png')

第三步:创建调用html程序:

def yanzhengma(request):
    return render(request,'yanzhengma.html')

第四步:去templates文件下的yanzhengma.html文件创建页面格式:

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
     <script>
        function refresh_check_code(ths) {
                ths.src += '?';
                {#src后面加问好会自动刷新验证码img的src#}
        }
     </script>
</head>
<body>
<img src="/yanzhengmashengcheng" onclick="refresh_check_code(this)">
  <form  method="get" action="/yanzhengmayanzheng" class="yanzhengma">
        <ul>
            <li>
                <input type="text" name="password" >

            </li>

            <li>
                <input type="submit" value="提交" class="sub">
            </li>

        </ul>
    </form>
</body>
</html>

第五步:然后获得页面的请求:
def yanzhengmayanzheng(request):
if request.method == ‘GET’:
parm = request.GET
print(parm)
password_get= parm.get(‘password’)
print(password_get)
# a= YanZhengMa.objects.get(password=password_get)
# a=request.session.get(‘password’,’错误’)
try:
a = YanZhengMa.objects.get(password=password_get)
if a :
# request.session.flush()
return HttpResponse(‘ok’)
except:
return HttpResponse(‘false’)

然后进行验证。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值