django 利用pillow 进行简单的设置验证码功能(python)
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,1.导入模块 并定义一个验证状态from PIL import Image, ImageDraw, ImageFontfrom django.utils.six import BytesIOdef v
千家信息网最后更新 2025年12月03日django 利用pillow 进行简单的设置验证码功能(python)
1.导入模块 并定义一个验证状态
from PIL import Image, ImageDraw, ImageFontfrom django.utils.six import BytesIOdef 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')
3.在网页中直接放入img中

4.使用ajax 获取验证密码和账号
login
请输入验证码![]()
记住密码
点击到获取cookies
在上面 ajax 中 向服务器发送了 账号密码 和 验证码
在验证函数中
yzm = request.POST.get('yum') # 获取传入的 验证码 vaue = request.session['verifycode'] # 生成图片的时候 把验证码存到了session 中 if yzm !=vaue: #如果不相等的话会返回 3 HTML ajax 会显示验证错误 return JsonResponse({'res':3})成果图:
总结
以上所述是小编给大家介绍的django 利用pillow 进行简单的设置验证码功能(python),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
验证
图片
登陆
内存
函数
字体
密码
对象
画笔
成功
文件
模块
画面
类型
账号
帮助
输入
功能
出处
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小米10s微信无法连接服务器
软件开发转游戏
截拳道视频软件开发
树莓派局域网服务器
社区网络安全知识答题活动简报
软件开发好的创意
制作简易数据库
网络安全微网文150字
我省网络安全现状
南京敦行网络技术有限公司
南昆士兰大学网络安全考研
网络安全配置需求分析报告
修改镜像服务器
网络技术专业去广东工作
零距离网络安全插画
新吴区运营软件开发内容
防疫数据库设计
员工管理系统的数据库脚本
如何理解网络安全的综合性
网络安全实用教程沈苏彬答案
截拳道视频软件开发
网络安全员培训的内容
日版ps5连接不到服务器
网络安全辅助功能
与服务器缺少信任关系
王者荣耀中的服务器什么意思
微信找回密码 服务器繁忙
软件开发通常包含的步骤
阿里云服务器老被攻击
datadog监控数据库