验证码

模块
from io import BytesIO

import random
from PIL import Image,ImageDraw,ImageFont
def get_veri(req):
    img = Image.new(mode='RGB', size=(120, 40),     #图片大小
                    color=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
    draw = ImageDraw.Draw(img, 'RGB')
    font = ImageFont.truetype('home/static/font/kumo.ttf', size=30)  #字体以及大小等设置
    veri_list = []
    for i in range(5):
        num = str(random.randint(0, 9))
        uper = chr(random.randint(65, 90))
        lower = chr(random.randint(97, 122))
        choice = random.choice([num, uper, lower])
        draw.text([5 + i * 24, 5], choice, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
                  font=font)     #第一个参数表示文字的起始位置
        veri_list.append(choice)
    f = BytesIO()
    img.save(f, 'png')
    data = f.getvalue()
    valid_str = "".join(veri_list)

    req.session["keepValidCode"] = valid_str

    return HttpResponse(data)
代码
 

http://www.cnblogs.com/yuanchenqi/articles/7468816.html

原文地址:https://www.cnblogs.com/pythonclass/p/7872156.html