python/django生成动态验证码, 动态刷新, 直接修改 img src 属性

以前有试过直接用python 生成验证码图片的方法,当时用的是汉字验证码, 可以在这里看到:python pil 验证码,汉字验证码,这没有集成到django里面去,这几天有空,也是为了自己的 一号门极客 程序做评论时做验证码用,所以才做了如下一个集成DJANGO的动态验证码. 这个代码是基于原来的代码修改的。

首先还是得下载上面提到的代码
会增加一些内容:
程序代码 程序代码

import cStringIO

....
class ImageChar():
   ........        
        
    def getBaseB64ImageStr(self):      
        jpeg_image_buffer = cStringIO.StringIO()
        self.image.save(jpeg_image_buffer,"jpeg")
        return jpeg_image_buffer.getvalue()
        #imgStr = base64.b64encode(jpeg_image_buffer.getvalue())        
        #return "data:image/jpeg;base64," + imgStr


另外得为页面请求验证码写一个view.py

程序代码 程序代码

def verify_code(request):
    """get ruandom verify code"""
    #下面这个得到随机数的方法,自己可以实现,记住这个验证码也要放到session中,这样才好与客户端请求验证码对比
    randomChar = randomCharCode();
    request.session['verifycode'] = randomChar.lower()
    ic = ImageChar(fontColor=(100,211, 90))
    ic.renderChar(randomChar);
    imgStr = ic.getBaseB64ImageStr();    
    response = HttpResponse(imgStr,"image/jpeg")
    return response


配置url.py

程序代码 程序代码

  ...
  url(r'^verifycode/$', 'verify_code', name="my_verify_code"),


页面验证码图片的获得

程序代码 程序代码

<img onclick="this.setAttribute('src','/verifycode?random='+Math.random())" src="/verifycode" title="点击重新获取" />


这样就实现了django 的动态验证码,可以参考 geek.yihaomen.com 的文章评论模块,我就是这样做的。

除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 yihaomen 于 2015-03-18 07:58 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: python verfiycode django
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.