模块
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)