温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python生成网页验证码的方法

发布时间:2021-02-07 14:35:25 来源:亿速云 阅读:278 作者:小新 栏目:开发技术

这篇文章主要介绍了python生成网页验证码的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

验证码为pil模块生成,可直接应用于django框架当中。

首先需要安装Pillow模块 我们这里使用的版本为3.4.1
终端中直接输入指令 pip install Pillow==3.4.1

from PIL import Image, ImageDraw, ImageFont from django.utils.six import BytesIO def verify_code(request):   #引入随机函数模块   import random   #定义变量,用于画面的背景色、宽、高   bgcolor = (random.randrange(20, 100), random.randrange(     20, 100), 255)   width = 100   height = 25   #创建画面对象   im = Image.new('RGB', (width, height), bgcolor)   #创建画笔对象   draw = ImageDraw.Draw(im)   #调用画笔的point()函数绘制噪点   for i in range(0, 100):     xy = (random.randrange(0, width), random.randrange(0, height))     fill = (random.randrange(0, 255), 255, random.randrange(0, 255))     draw.point(xy, fill=fill)   #定义验证码的备选值   str1 = 'ABCD123EFGHIJK456LMNOPQRS789TUVWXYZ0'   #随机选取4个值作为验证码   rand_str = ''   for i in range(0, 4):     rand_str += str1[random.randrange(0, len(str1))]   #构造字体对象,ubuntu的字体路径为“/usr/share/fonts/truetype/freefont”   font = ImageFont.truetype('FreeMono.ttf', 23)   #构造字体颜色   fontcolor = (255, random.randrange(0, 255), random.randrange(0, 255))   #绘制4个字   draw.text((5, 2), rand_str[0], font=font, fill=fontcolor)   draw.text((25, 2), rand_str[1], font=font, fill=fontcolor)   draw.text((50, 2), rand_str[2], font=font, fill=fontcolor)   draw.text((75, 2), rand_str[3], font=font, fill=fontcolor)   #释放画笔   del draw   #存入session,用于做进一步验证   request.session['verifycode'] = rand_str   #内存文件操作   buf = BytesIO()   #将图片保存在内存中,文件类型为png   im.save(buf, 'png')   #将内存中的图片数据返回给客户端,MIME类型为图片png   return HttpResponse(buf.getvalue(), 'image/png'

感谢你能够认真阅读完这篇文章,希望小编分享的“python生成网页验证码的方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI