django 利用pillow 进行简单的设置验证码功能(python)
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1.导入模块 并定义一个验证状态from PIL import Image, ImageDraw, ImageFontfrom django.utils.six import BytesIOdef v
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
智能科技公司是互联网公司吗
腾讯阿里互联网科技
互联网的科技创新
百单互联网科技有限公司
深圳齐家互联网科技
科技伦理 互联网公司
互联网科技生活的内容
华中科技有哪些互联网大佬
济南和联互联网科技有限公司
互联网科技有哪些公司
燊美集互联网科技有限公司
工业互联网山东科技大学
中国互联网有什么科技
互联网科技实习生岗位
济南小医互联网科技有限公司招聘
唐山双旺合互联网科技产业园
第三届互联网大会安防黑科技
互联网金融金融科技
上海互联网科技园景观
株洲百竞科技的互联网营销顾问
万易互联网科技
互联网 卓越科技
腾讯科技 互联网女皇
互联网金融 科技创新
世界互联网科技公司市值排名
河南猎农互联网科技有限公司
花神(南京)互联网科技有限公司
2021互联网科技公司排名
互联网第三次科技革命特征
马化腾互联网科技教学