captcha模块——生成图片验证码
安装 captcha 库
pip install captcha
基本使用方法(生成图片验证码)
import captcha from captcha.image import ImageCaptcha # 设置图片宽高 image = ImageCaptcha(width=200, height=100) # 验证码内容 captcha_text = '1234' # 验证码写入图片 captcha_image = image.generate(captcha_text) # 生成图片 image.write(captcha_text, 'captcha.png')
可以在文件中生成一张验证码图片captcha.png
进阶使用(生成随机验证码并展示到前端)
Django视图层部分代码:
# 导入模块 from captcha.image import ImageCaptcha import random # 在内存中读写二进制数据 from io import BytesIO def get_code(request): 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_upper, random_lower, random_int]) # 拼接随机字符串 code += tmp # 打印生成的5位随机数 print(code) # 创建一个BytesIO对象 io_obj = BytesIO() # 定义验证码图片的长宽,生成图片对象 generator = ImageCaptcha(width=300, height=100) # 将随机验证码写入图片 img = generator.generate_image(code) # 设置保存路径在内存BytesIO生成的对象中,格式为png img.save(io_obj, 'png') # 结果返回 return HttpResponse(io_obj.getvalue())
效果展示: