views.py
首先需要下载一个pillow模块 pip3 install pillow
from PIL import Image,ImageDraw,ImageFont
#导入pillow模块
‘‘‘
Image:生成图片
ImageDraw:在图片上写东西 相当于画笔
ImageFont: 控制字体样式的
‘‘‘
from io import BytesIO,StringIO
‘‘‘
io是一个内存管理器模块
BytesIO 能够帮你存储数据以二进制的格式
StringIO 能够帮你存储数据以字符串的格式
‘‘‘
import random
def get_random(): #为了获得颜色随机数用的 例如(255,255,255)
return random.randint(0,255),random.randint(0,255),random.randint(0,255)
接下来到了生成图片随机验证码
def get_code(request):
img_obj = Image.new(‘RGB‘,(360,35),get_random())
#能够产生任意多张不同颜色图片, 1.图片颜色格式2.图片大小(width,height)3.颜色编号 这里随机生成的例如(20,30,42)
img_draw = ImageDraw.Draw(image) #生成一个可以在图片上写字的画笔
img_font = ImageFont.truetype(‘static/font/111.ttf‘,30) #决定字体用的 1.字体样式 2.字体大小
#下面生成五位随机验证码 并写在img_obj图片上
code = ‘‘
for i in range(5):
upper_str = chr(random.randint(65,90))
lower_str = chr(random.randint(97,122))
random_int = str(random.randint(0,9))
temp_code = random.choice([upper_str,lower_str,random_int])
#下面往图片上写
img_draw.text((65+i*45,0),temp_code,get_random(),font=img_font)
code += temp_code
print(code)
#下面将产生的随机验证码存入session中
request.session[‘code‘] = code
img_obj.save(io_obj,‘png‘)
return HttpResponse(io_obj.getvalue())
原文:https://www.cnblogs.com/zhukaijian/p/12873476.html