#定义验证码类
class MyCode(View):
#定义随机取色方法
def get_random_color(self):
R = random.randrange(255)
G = random.randrange(255)
B = random.randrange(255)
return (R,G,B)
def get(self,request):
#定义画布
img_size = (120,50)
#定义图像
image = Image.new('RGB',img_size,'white')
#定义画笔
draw = ImageDraw.Draw(image,'RGB')
#随机字符串的组成
source = '0123456789qwertyuiopasdfghjklzxcvbnm'
#定义容器
code_str = ''
for i in range(4):
#取色
text_color = self.get_random_color()
#获取一个字符串
tmp_num = random.randrange(len(source))
#获取字符集
random_str = source[tmp_num]
#将随机生成的字符串放入定义好的容器
code_str += random_str
#将文字输入绘图
draw.text((15+30*i,25),random_str,text_color)
#建立iO文件流
buf = io.BytesIO()
#保存内存中
image.save(buf,'png')
#将验证码存入redis
r.set('code',code_str)
code = r.get('code')
mycode = code.decode('utf-8')
print(mycode,'这个是redis')
# 返回文件流图像
return HttpResponse(buf.getvalue(),'image/png')