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())
复制代码

 

效果展示:

 

posted @   wellplayed  阅读(828)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示