Python生成验证码实例


Posted in Python onAugust 21, 2014

本文实例展示了Python生成验证码的方法,具有很好的实用价值。分享给大家供大家参考。具体实现方法如下:

前台页面代码如下:

<div>
 <img id="authcode_img" alt="验证码" src="/registration/makeimage/{{time}}"/>  
 <!-- time 任意随机数(时间戳),防止页面缓存 导致验证码不能更新-->
 <a href="javascript:refreshCode();" rel="external nofollow" style="color:blue;">看不清换一张</a>
</div>

<script>
 function refreshCode() {
   $('authcode_img').src = "/registration/makeimage/" + Math.random();
 }
</script>

后台程序如下:

import StringIO
import Image, ImageDraw, ImageFont, random  #相应的模块需要安装
from xxx.settings import authcode_font #请确保改字体存在

def make_image(request):
  mp = hashlib.md5()
  mp.update(str(datetime.datetime.now())+str(random.random()))  
  mp_src = mp.hexdigest()
  rand_str = mp_src[0:6]
  font = ImageFont.truetype(authcode_font, 25)
  width = 75
  height = 30
  im = Image.new('RGB',(width,height),'#%s'%mp_src[-7:-1])
  draw = ImageDraw.Draw(im)
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.text((5,2), rand_str, font=font)  
  del draw  
  buffer = StringIO.StringIO()
  im.save(buffer,'jpeg')
  httpResponse = HttpResponse(content=buffer.getvalue(),mimetype="image/jpeg")
  request.session['auth_code'] = rand_str
  return httpResponse

程序效果如下:

Python生成验证码实例

Python 相关文章推荐
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
Python利用itchat对微信中好友数据实现简单分析的方法
Nov 21 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
Python中正则表达式的用法总结
Feb 22 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
python设置表格边框的具体方法
Jul 17 Python
利用python 下载bilibili视频
Nov 13 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
python os.rename实例用法详解
Dec 06 Python
python中去空格函数的用法
Aug 21 #Python
python实现的重启关机程序实例
Aug 21 #Python
实例讲解Python中的私有属性
Aug 21 #Python
Python创建日历实例
Aug 21 #Python
Python实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 #Python
python生成日历实例解析
Aug 21 #Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 #Python
You might like
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
理解javascript闭包
2015/12/15 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
跟老齐学Python之print详解
2014/09/28 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python简明入门教程
2015/08/04 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
工程班组长岗位职责
2013/12/30 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
公证委托书模板
2014/04/03 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
给领导敬酒词
2015/08/12 职场文书
推普标语口号大全
2015/12/26 职场文书
spring boot中nativeQuery的用法
2021/07/26 Java/Android