根据网上搜寻的,加上自己的理解,简单是实现了基于python2.7.5和django1.4的动态验证码
后台生成验证码的python代码写入views.py,
注意:导入PIL下的Image, ImageDraw, ImageFont,需安装PIL的插件,我使用的是PIL-1.1.7.win32-py2.7,附件中有
代码如下:
#获取校验码,并返回给浏览器 def getCheckCodeImage(request): try: import Image import ImageDraw import ImageFont except ImportError: from PIL import Image, ImageDraw, ImageFont #验证码的长度 clength = 4 #获取到验证码的值 code_dict = initCheckCodeVal(clength) #取出列表类型的验证码值 rand_list = code_dict['clist'] #取出字符串类型的验证码值 rand_str = code_dict['cstr'] #设置字体,需设置的字体包simsun.ttc与python源码同级目录 font = ImageFont.truetype('simsun.ttc',random.randint(18,25)) #Image背景颜色 bg_color = (255,255,255) #Image的长和宽 i_width,i_height = clength*20,30 #初始化Image对象 im = Image.new('RGB',(i_width,i_height),bg_color) draw = ImageDraw.Draw(im) for i in range(0,clength): in_x = 10+i*10+random.randint(1,7) in_y = random.randint(2,15) draw.text((in_x,5), rand_list[i],font=font,fill=(0,0,0)) #随机设置干扰线 for i in range(0,3): linecolor = (random.randint(0,255),random.randint(0,255),random.randint(0,255)) #都是随机的 x1 = random.randint(0,10) x2 = random.randint(i_width-10,i_width) y1 = random.randint(5,i_height-5) y2 = random.randint(5,i_height-5) draw.line([(x1, y1), (x2, y2)], linecolor) del draw #将验证码转换成小写的,并保存到session中 request.session['checkcode'] = rand_str.lower() buf = StringIO.StringIO() #将image信息保存到StringIO流中 im.save(buf, 'gif') return HttpResponse(buf.getvalue(),'image/gif') #获取验证码的值 def initCheckCodeVal(length=4): codes = ['0','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j', 'k','m','n','o','p','q','r','s','t','u', 'v','w','x','y','z','A','B','C','D','E', 'F','G','H','I','J','K','L','M','N','O', 'P','Q','R','S','T','U','V','W','X','Y', 'Z'] code_list = [] code_str = '' for i in range(0,length): temp = codes[random.randint(0,59)] code_list.append(temp) code_str+=temp return {'clist':code_list,'cstr':code_str}
获取验证码url路径配置,urls.py
url(r'^msg/checkCodeImage/$', 'mysite.views.getCheckCodeImage',name='check code')
网页上使用img标签加载图片
<img class="codeimg" onclick="this.setAttribute('src','/msg/checkCodeImage?nocache='+Math.random());" src="/msg/checkCodeImage"/>
页面效果如下图:
本人初学python和django,如有错误地方望高手多多指点
相关推荐
门户网站制作django1.4
网上的django chm文档比较老,这个是1.4版本的,而且是chm格式的
django1.4官方离线文档 html格式
Django 1.4 release candidate 2 2012-03-14
该文档比Djangobook更加详细地介绍Django技术,介绍了如何使用Django完成基本功能和API
最近工作开发主要利用Django搭建公司后台系统,在开发中遇到数据分页(django原生翻页),后台自定义页面、搜索功能(基于日期单搜索和日期项目名称多选项搜索)、数据显示(BootstrapTable翻页)、权限(控制表)等...
主要为大家详细介绍了Django自定义插件实现网站登录验证码功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
python django 1.4 ,给有需要的童鞋
django-admin-customizer Django admin 自定义界面特征同一模型的多个管理实例定制: 列表显示列表过滤器raw_id_fields 搜索字段去做动作配置器基础管理类支持要求Django 1.3、1.4、1.5、1.6。 不支持 Django 1.2 或...
今天小编就为大家分享一篇对django xadmin自定义菜单的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
使用Django+MySQL实现的在线电影推荐系统源码 使用Django+MySQL实现的在线电影推荐系统源码 使用Django+MySQL实现的在线电影推荐系统源码 使用Django+MySQL实现的在线电影推荐系统源码 使用Django+MySQL实现...
基于python+django的登录网站验证码的生成与识别系统的实现.zip 用python实现登录网站验证码功能: 设计两种验证码: 1 图形验证码,用python web框架Django能够实现动态刷新。 2 滑动验证码: 1.服务端随机生成小...
主要介绍了Django实现的自定义访问日志模块,结合具体实例形式分析了Django针对日志的相关操作技巧,需要的朋友可以参考下
django+python 图片验证码源码,直接使用
Autoforms是Jeff开源的一个基于Django的自定义表单引擎,可用于调查、投票、信息收集甚至是整合至工作流程引擎和PAAS平台当中。 AutoForms的主要特性: 支持14种字段类型13种html输入控件(包括日期选择组件)...
主要介绍了Django中自定义admin---Xadmin的实现代码,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
NULL 博文链接:https://liuyouqian.iteye.com/blog/1217790
源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。...
Django-1.4.tar.gz