随机验证码(早年搜狗笔试题)
IOError: cannot open resource
提示找不到字体文件
附上代码:
# 随机图片 import random def get_random(): return random.randint(0, 255), random.randint(0, 255), random.randint(0, 255) # 图片验证码 from PIL import Image, ImageDraw, ImageFont from io import BytesIO, StringIO def get_code(request): img_obj = Image.new('RGB', (600, 35), get_random()) # 产生画笔对象 img_draw = ImageDraw.Draw(img_obj) # 字体样式和大小 img_font = ImageFont.truetype('app01/static/font/222.ttf', 30) # 随机验证码 五位数的随机验证码 数字 小写字母 大写字母 code = '' for i in range(5): random_upper = chr(random.randint(65, 90)) random_lower = chr(random.randint(97, 122)) random_int = str(random.randint(0, 9)) # 从这三个里面随机选择一个 tmp = random.choice([random_lower, random_int, random_upper]) # 将产生的随机字符串写入图片上 img_draw.text((i*90+60, 0), tmp, get_random(), img_font) # 拼接随机字符串 code += tmp print(code) # 随机验证码在登录的视图函数里面需要用到,要比对,所以要找地方存起来并且其他视图函数也能拿到 request.session['code'] = code io_obj = BytesIO() img_obj.save(io_obj, 'png') return HttpResponse(io_obj.getvalue())
愿君前程似锦,归来仍是少年