动态验证码案例
from django.shortcuts import render,HttpResponse,redirect from django.urls import reverse from app01 import models from PIL import Image,ImageDraw,ImageFont from io import BytesIO import random def checked_code(request): f=BytesIO() #在内存中开辟一块空间 img=Image.new(mode='RGB',size=(120,30),color=(255,255,255)) #新建一个图片对象 draw=ImageDraw.Draw(img,mode='RGB') #创建一个画笔对象 char_list=[] #创建一个列表存放随机字符 for i in range(5): char=chr(random.randint(65,90)) #产生A——Z随机字符 char_list.append(char) #存储到列表中 font=ImageFont.truetype('kumo.ttf',20) #创建一个字体对象 draw.text([i*24,0],char,(random.randint(0,255),random.randint(0,255),random.randint(0,255),),font=font) #将创建的字符对象带着属性渲染到界面上 img.save(f,'png') #将这个图片存储到这个内存中 data=f.getvalue() #获取这个存储的图片以bytes的类型 code=''.join(char_list) request.session['code']=code return HttpResponse(data)
清风徐来.水波不兴