使用python制作验证码

时间:2022-12-12 20:37:57

方法一

简单型:使用random模块制作一个随机字母与数字的验证码

import random

def make_code(n):
res=''
for i in range(n):
num=str(random.randint(1,9))#随机选取1到9的一个整数
letter=chr(random.randint(65,90))#随机选大写英文的一个字母
group=random.choice([num,letter])#随机选取整数还是大写字母
res+=group#循环次数加到空字符串中
return res print(make_code(4))

方法二

进阶型:使用random和pillow模块制作图形验证码

pillow不是自带库,需要自行安装,pip install pillow

import random
import from PIL import Image, ImageDraw, ImageFont, ImageFilter
from io import BytesIO def get_valid_code(): # 随机字母数字:
def rndChar():
char_num = random.randint(0, 9)
char_upper=chr(random.randint(65, 90))
char_lower=chr(random.randint(97, 122))
char_str=str(random.choice([char_num,char_lower,char_upper]))
return char_str # 随机颜色1:
def rndColor():
return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255)) # 随机颜色2:
def rndColor2():
return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127)) # 240 x 60:
width = 60 * 5
height = 60
image = Image.new('RGB', (width, height), (0,0,0))
# 创建Font对象: font = ImageFont.truetype(r'static\font\calligraph421-bt-roman.woff.ttf', 40)
# 创建Draw对象:
draw = ImageDraw.Draw(image)
# 填充每个像素(画点):
for x in range(width):
for y in range(height):
draw.point((x, y), fill=rndColor()) # 输出文字:
random_code=''
for t in range(5):
char_str=rndChar()
draw.text((60 * t + 10, 5), char_str, font=font, fill=rndColor2())
random_code+=char_str # 模糊处理:
image = image.filter(ImageFilter.SMOOTH) # 其他一些画图功能
# 画线
# draw.line() # 保存到内存中
f=BytesIO()
image.save(f,'jpeg')
data=f.getvalue()
return data res=get_valid_code()
print(res)

使用python制作验证码的更多相关文章

  1. python制作验证码

    from PIL import Image, ImageFont, ImageDraw, ImageFilterfrom random import choice, randint # 随即配置颜色d ...

  2. (一)学习MVC之制作验证码

    制作验证码的方法在@洞庭夕照 看到的,原文链接:http://www.cnblogs.com/mzwhj/archive/2012/10/22/2720089.html 现自己利用该方法制作一个简单的 ...

  3. 使用python制作ArcGIS插件(5)其他技巧

    使用python制作ArcGIS插件(5)其他技巧 by 李远祥 使用python做插件开发,除了了解ArcToolBox工具之外,还需要在了解ArcPy的相关函数和接口.只有掌握了这些,才可以顺利的 ...

  4. 使用python制作ArcGIS插件(4)界面交互

    使用python制作ArcGIS插件(4)界面交互 by 李远祥 插件界面部分,除了一开始在设计器中设计的这些界面元素之外,还可以与操作系统进行一些输入输出的交互,这部分的实现全部在pythonadd ...

  5. 使用python制作ArcGIS插件(3)ArcPy的使用说明

    使用python制作ArcGIS插件(3)ArcPy的使用说明 by 李远祥 ArcPy 是一个以成功的 arcgisscripting 模块为基础并继承了 arcgisscripting 功能进而构 ...

  6. 使用python制作ArcGIS插件(2)代码编写

    使用python制作ArcGIS插件(2)代码编写 by 李远祥 上一章节已经介绍了如何去搭建AddIn的界面,接下来要实现具体的功能,则到了具体的编程环节.由于使用的是python语言进行编程,则开 ...

  7. 使用python制作ArcGIS插件(1)工具介绍

    使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是 ...

  8. python制作pdf电子书

    python制作pdf电子书 准备 制作电子书使用的是python的pdfkit这个库,pdfkit是 wkhtmltopdf 的Python封装包,因此在安装这个之前要安装wkhtmltopdf 安 ...

  9. Jsp制作验证码

    验证码 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apart&qu ...

随机推荐

  1. 线程中调用python win32com

    在python的线程中,调用win32com.client.Dispatch 调用windows下基于COM组件的应用接口, 需要在调用win32com.client.Dispatch前,调用pyth ...

  2. nginx.conf的events,http段一般固定配置

    nginx.conf的events,http段一般固定配置 user nobody nobody; #使用的用户可以按照实际情况修改 worker_processes ; #指定nginx开启的进程数 ...

  3. 关于用Max导出Unity3D使用的FBX文件流程注解

    原地址:http://hi.baidu.com/phpstyle/item/c167a4c0694670b10d0a7b87 关于用Max导出Unity3D使用的FBX文件流程注解(转载) (2011 ...

  4. jquery之insertBefore(),insertAfter(),prependTo(),appendTo()用法详解

    导航: 1,insertBefore(),insertAfter(),prependTo(),appendTo()这四个函数用法几乎一样 2, 与之相对的有四个函数:Before(),After(), ...

  5. Linux man命令数字含义

    1,用户在shell环境中可以操作的命令或可执行文件   2,系统内核可调用的函数与工具等,即由内核提供的函数. 如open,write之类的(通过这个,可以很方便的查到调用这个函数时需要加什么头文件 ...

  6. 自定义 textField 的清除 button

    UIButton *clearButton = [self.textField valueForKey:@"_clearButton"]; [clearButton setImag ...

  7. python 基础,包括列表,元组,字典,字符串,set集合,while循环,for循环,运算符。

         1.continue 的作用:跳出一次循环,进行下一次循环      2.break 跳出不再循环      3.常量 (全是大写)NAME = cjk  一般改了会出错      4.py ...

  8. 用 Asterisk 搭建自己的免费 VoIP 服务器

    原文 http://www.yaoblog.info/?p=5021 1. 这里以 Debian 为例子,安装 Asterisk apt-get update apt-get install aste ...

  9. 综合数据api接口使用

    由于请求数据接口是跨域的,但是我们无法改变接口的代码 先从请求后台,然后从后台进行二次请求,请求数据接口 原生代码 package edu.nf.http.test; import org.apach ...

  10. create-react-app之proxy

    [create-react-app之proxy] create-react-app可以用于一键创建web_client环境,默认使用webpack-dev-server.但在开发过程中,往往需要cli ...