方法一

简单型:使用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. WorldCount代码检查与优化——软件测试第三次作业

    合作者:201631062222,201631062232 代码地址:https://gitee.com/biubiubiuLYQ/ceshi_secend 本次作业链接地址:https://edu. ...

  2. JavaSE从入门到精通

      1.JavaSE的安装 windows下安装完成后,配置环境变量如下: JAVA_HOME       C:\Program Files (x86)\Java\jdk1.8.0_91 CLASSP ...

  3. jdbc一点小笔记

    JDBC的常用接口的步骤, 1使用Driver或者Class.forName()进行注册驱动: 2使用DriverManager进行获取数据库的链接.使用Connection获取语句对象.使用语句对象 ...

  4. ADO工具类

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data; ...

  5. Qt 使用openGL 渲染NV12格式的视频

    直接上代码 Nv12Render.h #ifndef NV12RENDER_H #define NV12RENDER_H #include <QOpenGLFunctions> #incl ...

  6. kubernetes 简单service的例子

    首先建一个Deployment: apiVersion: apps/v1beta1 kind: Deployment metadata: name: httpd spec: replicas: 3 t ...

  7. F - Count the Colors ZOJ - 1610 线段树染色(染区间映射)

    题意:给一段0-8000的线段染色 问最后 颜色x 有几段 题解:标准线段树  但是没有push_up  最后查询是单点按顺序查询每一个点 考虑过使用区间来维护不同的线段有多少种各色的线段  思路是 ...

  8. HBase电子书

    HBase 不睡觉书  https://pan.baidu.com/s/1d4u7pPAu_B3sW5w9x1ARdA HBase2018年年度总结 https://pan.baidu.com/s/1 ...

  9. CODEFORCES掉RATING记 #3

    比赛:Codeforces Round #426 (Div. 2) 时间:2017.7.30晚 开场先看AB A:给你两个方向,和旋转次数(每次旋转90度),问你旋转方向是什么 B:给你一个字符串,问 ...

  10. 图论杂项细节梳理&模板(虚树,圆方树,仙人掌,欧拉路径,还有。。。)

    orzYCB 虚树 %自为风月马前卒巨佬% 用于优化一类树形DP问题. 当状态转移只和树中的某些关键点有关的时候,我们把这些点和它们两两之间的LCA弄出来,以点的祖孙关系连成一棵新的树,这就是虚树. ...