captcha模块——生成图片验证码

发布时间 2023-12-07 16:32:42作者: wellplayed

安装 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')

可以得到一张验证码图片

 

进阶使用(生成随机验证码并展示到前端)

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())

 

效果展示: