首页 > 其他分享 >captcha模块——生成图片验证码

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

时间:2023-12-07 16:34:38浏览次数:29  
标签:image random 验证码 生成 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())

 

效果展示:

 

标签:image,random,验证码,生成,captcha,模块,图片
From: https://www.cnblogs.com/wellplayed/p/17883320.html

相关文章

  • Python requests 模块 get请求和post请求
    前言全局说明requests模块get请求和post请求一、get请求importrequestsurl="https://www.baidu.com"my_headers={ "User-Agent":"Mozilla/5.0", "Referer":"http://baiud.com"}res=requests.get(url)print(res.status_......
  • BOSHIDA DC电源模块在新能源产业中的应用前景
    BOSHIDADC电源模块在新能源产业中的应用前景随着新能源产业的不断发展,DC电源模块的应用前景越来越广泛。BOSHIDADC电源模块是一种具有稳定、高效、可靠的电源输出的电源模块,它能够将电源输入电压转换为可靠的直流电源输出,广泛应用于太阳能、风能、储能等新能源领域。下面就让我......
  • NodeJs的库/模块
    一、require("path")path模块(1)extname方法extname方法返回路径中的文件扩展名,例如“index.txt”通过该方法返回".txt"letpath=require("path");letfilePath="index.txt";console.log(path.extname(filePath));//输出.txt二、iconv-lite和iconv库......
  • node内置模块
    //1.path模块console.log(path.join('a','b','c'))//相对路径a\b\cconsole.log(path.resolve('a','b','c'))//绝对路径D:\桌面\express\a\b\cconsole.log(path.parse('http://web.chenfeng.online�......
  • python 中的 collections 模块:常用数据结构和工具详解
    Python的collections模块提供了许多有用的数据结构,超越了标准的内置数据类型。这些数据结构解决了各种常见的编程问题,包括但不限于高效的容器类型、特定目的的容器、默认值字典等。让我们深入了解其中的几个重要数据结构和工具。1.defaultdict:带有默认值的字典defaultdict是d......
  • python利用依赖注入实现模块解耦
    python不是编译型语言,比较容易出现循环依赖的情况,比如模块A依赖模块B,而模块B反过来依赖模块A.当然可以通过重构解决此问题,比如合并此两个模块.但是还有一些技术可以帮助实现解耦.比如之前我写过的基于消息的机制,把模块间的依赖转换为对消息的依赖.本文章介绍另外一......
  • 验证码 研究
    思路旋转验证码RotNet模型训练,本来想自学一下pytorch,cnn但是课太多了,直接用别人模型俗称但是面对验证码25张图的时候有点问题25张图太少了有几张图角度训练不出来,要扩充几百张图训练太难了本人不会找类似图验证码是中式动漫山水图  当时我搜资料用......
  • Maven多模块项目版本统一管理
    如图所示,项目中定义了这样几个模块:pdd-workflow-build:定义项目版本,及全局配置pdd-workflow-dependencies:外部依赖管理,统一管理所有用到的外部依赖的版本pdd-workflow-service:项目service模块pdd-workflow-web:项目web模块pdd-parent:聚合模块模块之间的继承依赖关系如......
  • asp.net如何生成图片验证码
    新建一个页面image.aspx,添加命名空间:usingSystem.Drawing.Imaging;usingSystem.IO;然后在Page_load事件拷入如下代码: stringtmp=RndNum(4); HttpCookiea=newHttpCookie("ImageV",tmp);  Response.Cookies.Add(a); this.ValidateCode(tmp);接下来向该页面......
  • 基于社区电商的Redis缓存架构-库存模块缓存架构(下)
    基于缓存分片的下单库存扣减方案将商品进行数据分片,并将分片分散存储在各个Redis节点中,那么如何计算每次操作商品的库存是去操作哪一个Redis节点呢?我们对商品库存进行了分片存储,那么当扣减库存的时候,操作哪一个Redis节点呢?通过轮询的方式选择Redis节点,在Redis中通过记录......