python怎么设置验证码功能

本篇内容介绍了“python怎么设置验证码功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联服务项目包括乌当网站建设、乌当网站制作、乌当网页制作以及乌当网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,乌当网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到乌当省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

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怎么设置验证码功能

3.在网页中直接放入img中

验证码

python怎么设置验证码功能

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})

成果图:

python怎么设置验证码功能

“python怎么设置验证码功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


分享文章:python怎么设置验证码功能
文章源于:http://hbruida.cn/article/pcgeed.html