验证码

此例是以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="data:image/jpeg;base64,{{ base64 }}" 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/

相关推荐
亦思验证码识别系统 (破解版)  亦思验证码识别系统(enjoy-soft.cn)是用于识别的系统性软件,其用途广泛,适用于各类验证码识别,本地图片识别,车牌号码识别,汉字文字识别等领域,拥有识别库体积小,识别速度快,准确率高,操作简便,调用方便,高效率制作等特点。自发布以来,就受到很多用户好评,被国内各大知名软件网站相继收录。   支持调用语言:   支持C#、 VB.Net、 VB、 VC、 Delphi、 C++Builder、JAVA、VFP、Python、易语言等各种编程工具调用。   识别系统作用:   (1) 提高软件档次:能自动处理验证码的软件,不但软件销售价格更高,而且销量也会大大提升。并且可以作为很好的宣传亮点。   (2)减少开发周期:亦思验证码识别系统能很轻松的识别各类验证码,即使验证码变动,也可以只修改少量部分就可以识别一个全新的验证码。   (3)方便的调用接口:标准DLL调用接口,命令行调用模块,多种调用方式,满足您的不同需求。   可识别种类:   51拉统计站、PC蛋蛋、凤凰网、久游网、征途、搜狐游戏充值、Discuz论坛、当当网、华声论坛、可乐吧、淘宝网、新浪论坛、支付宝、NBA中文网、动网、经济博客网、荣昌科技、万网、信天游、中国站长站、搜狐博客、如意付、chinamobile、moneybookers、投票调查网、完美充值、新浪爱问、盛大冲值、5173、九城、搜狐、金山充值、英雄之门、网易、中文识别、教育网、电玩巴士、CSDN、久游、163邮箱、新浪邮箱、新浪博客等。   识别系统使用方法:   识别库制作步骤:输入验证码图片地址-->选择滤镜-->选择分割方式-->选择识别模式-->批量制作-->发布   主要功能及应用:   1.菜单栏:主要是负责项目的新建、添加、删除、发布等操作。   2.模式区:在此设置分割和识别模式,并根据相应情况设置好参数。   3.制作区:负责识别库的制作。   4.视图区:用于显示验证码图片。   5.滤镜区:进行滤镜处理。   6.底部提示:部分的操作过程中,底部会出现相应的字符提示,以帮助操作。   识别系统更新记录:   3.2.2更新记录:   更换内核引擎,提高速度和稳定性   3.1更新记录:   添加滤镜去色同功能,添加界面收放功能   略微提高处理速度,优化程序稳定性   修正部分细节   3.0更新记录:   减少特征库数,在原基础上减少30%-50%   大大提高识别准确率,在原基础上提高20%-30%   略提升验证码处理速度
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页