每个网站的后台都会涉及一个必不可少的功能,那就是登录,有的登录可能只是简单的登录名和密码,但是为了丰富登陆页面和验证防止机器人脚本等登陆情况,程序员们设计了验证码登录,12.06的图片识别验证登录和B站的图片位置登录。

  本人刚学习完成python ,就打算用python 来写一个验证码登录的一个小玩意,代码如下:

from django.http import HttpResponse

''' 验证码 '''
def valateCode(request):
  import random
  from PIL import Image,ImageDraw,ImageFont
  from io import BytesIO
  # 图片的宽高
  width = 120
  height = 50
  #返回页面的验证码
  result_txt = ''
  # 自定义都有什么验证码
  text = '1234567890'
  # 获取颜色
  def getBgColor():
    return (random.randrange(255), random.randrange(255), random.randrange(255))

  # 生成一个图片
  img = Image.new('RGB', (width, height), getBgColor())
  # 设置书画字体
  font = ImageFont.truetype('C:/MyFiles/progress/Python/new_python/static/fonts/FZY3JW.TTF', 44)
  # 制作画笔
  draw = ImageDraw.Draw(img)

  for item in range(4):
    textIndex = text[random.randrange(len(text))]
    textFontColor = getBgColor()
    result_txt += textIndex
    draw.text((item * 30, 5), textIndex, textFontColor, font)
  # 制作噪点
  for item in range(100):
    draw.point((random.randrange(width), random.randrange(height)), getBgColor())
  # 内存
  buf = BytesIO()
  img.save(buf, 'jpeg')
  request.session["code"] = result_txt
  return HttpResponse(buf.getvalue())

  这个是Django的登陆页面前台代码:

valateCode 这个是django的一个urls的一个路由,指向上面的这个方法
<img src="{% url 'valateCode' %}" alt="">