验证码

此例是以django环境进行测试的。

1,安装生成随机验证码的gvcode 库。

pip install graphic-verification-code  

2,了解生产验证码过程,每一次都会生产不同的验证码。

>>> import gvcode
>>> code=gvcode.base64()
>>> code
(b'iVBORw0KGgoAAAANSUhEUgAAAHgAAAAeCAIAAABoq03CAAACkElEQVR4nOVasW7CMBC9q/oJZekHIFb6GTAwVWLmByIQf9CpU9eKia9g4R/4ACQk5vYjroMhvthO4rMdcOipQxLFdy/v3p3PokhEkKshogHPfpK/Kcz9w52/OdXwdBco/oaIvXPu1G7uRHdtnSayEujhW0cmbV0r2sjtzVLdteXAMpRE22nPBJ9tPVVA/3p0tgpotgvRN0PfUz3Gm0PR/5aLTs1BdKfqbnBel+DHSHxGPZqIFgtABIPYsMQjoj1H3TFnWcyY3BAhGFHryHzHmTpK0VwgTrH4KOiWKkvFcgDm2gOLj3Hc6loVvl3+zZaKa5vHjtpFQMI00UmyTaQLHxH2e2olnYh4ksA7W5zE8v3x+HJRFGo5AXh9lzOouj2dfBy0+ffh17+1KZSca2n6DA/StUSqPogIvr5guRRgUKF/f+HlpfJEWaQOvXq0P8v7vfHsXQoo1V6FCKuVvt1sfEMPBprfskB/fqLxJN+FuYLCRojgwcMZWrUX/8+0S+paKFEi6HyOvvHkaocjcrdp0T4Z/xWdEF3uKnxvlNp6LV5ixDLYmc+Nl5snbtNtUYjxVBzyeNIqc7iL2MqSOKnpHjKHiGAxE9s9KoouJy1vQAjVGiw/jP8dj4HgyiieNV73WgA7n59kOIvsHglaR2tuhkOpQwDA2Uz7H41aQvBaTLIrbLc2pKhKfQ5eyYfr8sJZXAEVR1Q56fgvVwUeE1o52e1gOtVPDocohyBVNDuJ1c6F5zO8vurb7+8QWFLjmQZ2yOTX11bmJfjJhC+Btzdz4JOaeI5u3TBtGYr2okx+tFbWQKgUY3jrcNrHhy7egMKHzH4STIhFJh+n3LLSYJ1xkJd/houeZWUAJGfTHhCarf0ByadGE9wbAIUAAAAASUVORK5CYII=', 'gtmu')


--------------------------------------------------------------------------------------------
code是一个元组 (b'base64格式的验证码图片','验证图片上的文本')
第一个元素 就是一个base64格式的图片:验证码图片
第二个元素是验证图片上的文本 如 dfgk

把整个元组传给客户端,浏览器会显示此图片 第一个元素,服务端记下图片的文本 即第二个元素,
用户按照图片输入文本提交,把用户输入的和服务端记下的进行对比,若一致就是正确的,

3,通过函数完整生产验证码:

在views.py 文件生产验证码函数

from django.shortcuts import render
from django.http import HttpResponse
import gvcode

def get_code(request):
    """返回验证码"""
    base64_code,str_code =gvcode.base64()
    request.session['code'] = str_code
    # 渲染模板 函数传参 base64
    return render(request,'test.html',{'base64':base64_code})



在test.html 文件写入模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码</title>
</head>
<body>

<img src="https://img-blog.csdnimg.cn/2022010708001766650.jpeg" alt="">

</body>



配置路由:
根路由:
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^app/',include('app.urls')),  ]

二级路由:
from django.conf.urls import url
from app import views
urlpatterns =[
    url(r'^get_code/',views.get_code)   ]

运行:python manage.py runserver
浏览器执行:http://localhost:8000/app/get_code/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值