免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2937 | 回复: 0
打印 上一主题 下一主题

在Django中实现验证码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-14 16:47 |只看该作者 |倒序浏览
在项目中用到验证码,懒得去找,自己随便写了一个:
views.py:
def get_check_code_image(request,image='media/images/checkcode.gif'):   
    import Image, ImageDraw, ImageFont, random   
    im = Image.open(image)   
    draw = ImageDraw.Draw(im)   
    mp = md5.new()   
    mp_src = mp.update(str(datetime.now()))   
    mp_src = mp.hexdigest()   
    rand_str = mp_src[0:4]      
    draw.text((10,10), rand_str[0], font=ImageFont.truetype("ARIAL.TTF", random.randrange(25,50)))   
    draw.text((48,10), rand_str[1], font=ImageFont.truetype("ARIAL.TTF", random.randrange(25,50)))   
    draw.text((85,10), rand_str[2], font=ImageFont.truetype("ARIAL.TTF", random.randrange(25,50)))   
    draw.text((120,10), rand_str[3], font=ImageFont.truetype("ARIAL.TTF", random.randrange(25,50)))   
    del draw   
    request.session['checkcode'] = rand_str   
    buf = cStringIO.StringIO()   
    im.save(buf, 'gif')   
    return HttpResponse(buf.getvalue(),'image/gif')

urls.py:
from django.conf.urls.defaults import *   
   
urlpatterns = patterns('tracer_server.apps.user.views',   
    # Uncomment this for admin:   
    # (r'^admin/', include('django.contrib.admin.urls')),   
        
    (r'^get_check_code_image/$', 'get_check_code_image'),   
   
)  

template:
[color="#0000ff"]


原文地址:
[url]http://openexperience.javaeye.com/blog/157549[/url]

转者注:
  • 这个例子还需要下载Python Imaging Library(PIL),这里下载最新版本
    [url]http://www.pythonware.com/products/pil/index.htm#pil116[/url]
  • 还需要导入的模块:from datetime import datetime, import md5, cStringIO
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_2027476.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP