# 导入类视图
from django.http import HttpResponse
# 导入图片库
# 绘画库
from PIL import ImageDraw
#定义验证码
# 图片库
from PIL import Image
# 随机库
import random
# 文件流
import io
import redis
#定义ip端口
host = "localhost"
port = 6379
#建立连接
r=redis.Redis(host=host,port=port)
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 = (110,50)
#定义颜色类型
image = Image.new("RGB",img_size,'white')
#画笔
draw = ImageDraw.Draw(image,'RGB')
#定义随机字符串
source = '0123456789'
#容器,用来接收随机字符串
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
#绘制
#横坐标10+30*i
#纵坐标20
draw.text((10+30*i,20),random_str,text_color)
#文件流缓冲区
buf = io.BytesIO()
#将图片保存到缓冲区
image.save(buf,'png')
#将随机码存储到redis中
r.set('code',code_str)
return HttpResponse(buf.getvalue(),'image/png')