验证码功能:
def get_img(request): import random def get_random_img(): return (random.randint(0,255),random.randint(0,255),random.randint(0,255)) from PIL import Image,ImageDraw,ImageFont img = Image.new("RGB",(270,40),color=get_random_img()) #方式二 # with open('valid_code.png','wb') as f: # img.save(f) # # with open('valid_code.png','rb') as f: # data = f.read() from io import BytesIO draw = ImageDraw.Draw(img) chandan_ttf = ImageFont.truetype("static/font/chandan.ttf",size=32) for i in range(0,5): num = str(random.randint(0,9)) #生成随机数字 upper_alpha = chr(random.randint(65,90)) #生成随机大写字母 low_alpha = chr(random.randint(97,122)) #生成随机小写字母 now_char = random.choice([num,upper_alpha,low_alpha]) #使用随机列表从中选择 draw.text((i*50,5),now_char,get_random_img(),font=chandan_ttf) #draw.text(xy坐标,写的内容text,背景颜色,字体ttf) f = BytesIO() img.save(f,"png") data = f.getvalue() return HttpResponse(data)