使用Django如何实现随机生成图形验证码

  介绍

使用Django如何实现随机生成图形验证码?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>实现效果:点击右边图片验证码会变

使用Django如何实现随机生成图形验证码

<强>前端代码:

& lt; div类=癱ontainer"比;   & lt; div类=皉ow"祝辞   & lt; div类=癱ol-md-6"祝辞   & lt;标签=皔zm_id"祝辞验证码:& lt;/label>   & lt;输入类型=皌ext"类=癴orm-control"id=皔zm_id"占位符=?“name=皔zm"比;   & lt;/div>   & lt; div类=癱ol-md-6"祝辞   & lt; img id=& # 39; yzm_img_id& # 39;src=https://www.yisu.com/zixun/皔zm/alt=" ">   
  
  

<强>后端代码:

从公益诉讼导入图像,ImageDraw ImageFont
  从进口BytesIO io, StringIO
  #色彩的设置为(*,*,*),所以随机返回三个数
  def r_num(数量):
  #数字为2指的是背景颜色,把背景颜色和字体颜色分开,不然当颜色一样时,不容易看的到
  如果数量==2:
  返回random.randint (0128), random.randint (0128), random.randint (0128)
  #==1指的是字体颜色,字体颜色深一些比较养眼
  如果数量==1:
  返回随机。randint(128、255),随机的。randint(128、255),随机的。randint (128、255)
  def yzm(请求):
  #创建一个图像对象,rgb # 39;是颜色的模式。第二个参数是验证码的大小。第三个参数是三个随机数,当然也用英语单词指定颜色,比如红色,这里为了随机性选择了用三个数字
  yzm_img=Image.new (“RGB" (260, 40), r_num (1))
  #为yzm_img对象创建一个画笔
  画=ImageDraw.Draw (yzm_img)
  #指定字体的格式,ttf文件自己在网上下载,放入静态文件夹中,40指的是字体的大小
  字体=ImageFont.truetype(& # 39;静态/1. ttf # 39;, 40)
  #存放验证码
  代码=& # 39;& # 39;
  #循环5次,所以验证码是5位
  因为我在范围(5):
  #随机0到9的数字
  random_num=str (random.randint (0, 9))
  #随机65到90的数字,空空的是把数字对比ASCLL码表转为字母90 .65点到是大写字母
  random_up=str(科(random.randint (65、90)))
  同号上,随机小写字母
  random_low=str(科(random.randint (97122)))
  #从三个字符中随机选取出一个
  random_code=random.choice ([random_num、random_up random_low])
  #把字符写入图片。第一个参数(x, y),坐标,如果坐标位置写死,那么将会全部挤到一起,第二个参数,指定写入的字符。第三参数指定字符的格式
  draw.text((45 *我,5)、random_code r_num(2),字体)
  代码+=random_code
  io_obj=BytesIO ()
  #把图片存放到内存空间中
  yzm_img.save (io_obj & # 39; png # 39;)
  #给会话中添加验证码
  request.session[& # 39;代码# 39;]=代码
  #返回二进制数据
  之前返回HttpResponse (io_obj.getvalue ())  

现在刷新就可以刷新验证码了

还差点击验证码就能更换验证码

<强>前端脚本代码:

这里这么写是因为只要在地址后面加上字符,那么就刷新图片

 $ (& # 39;# yzm_img_id& # 39;)。点击(函数(){
  var path3=$(这).attr (& # 39; src # 39;);
  (美元).attr (& # 39; src # 39;, path3 +=& # 39;及# 63;& # 39;)
  });

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

使用Django如何实现随机生成图形验证码