美文网首页
Django图片验证码

Django图片验证码

作者: 一纸繁鸢w | 来源:发表于2019-01-04 11:25 被阅读0次

    django使用验证码

    1. 导入第三方包pip install Pillow
    2. 导入第三方库,将文件拷贝到自己的项目根目录中,2个py文件,1个data文件夹,保证三个文件处于同一个目录中链接:https://pan.baidu.com/s/1pb49XWCYOiaFkg2qnjazjg 提取码:f6r9 captcha.png
    3. 在views中创建请求验证码
    import random,string
    from captcha.image import ImageCaptcha #从image.py中导入ImageCaptchar类
    def getcaptcha(request): # 127.0.0.1:8000/getcaptcha
        #为验证码设置字体 获取当前目录下的xxx目录下的segoesc.ttf文件
        image = ImageCaptcha(fonts=[os.path.abspath("xxx/segoesc.ttf")])
        #随机码
        #大小写英文字母+数字,随机抽取5位作为验证码 ['x','x','x','x','x']
        code = random.sample(string.ascii_lowercase+string.ascii_uppercase+string.digits,5)
        #将验证码存入session,以备后续验证
        random_code = "".join(code)
        request.session['code']=random_code
        #将生成的随机字符拼接成字符串,作为验证码图片中的文本
        data = image.generate(random_code )
        #写出验证图片 给客户端
        return HttpResponse(data,"image/png")
    

    4.在html中使用验证码

    <input type="text" name="identifycode">
    <img src="{% url 'identify_demo:getcaptcha' %}" id="image_code" width="80px"
    height="30px" align="center">
    <a href="javascript:void(0)" onclick="change()">换一张</a>
    
    <script>
    function change() {
    var url = "{% url 'identify_demo:getcaptcha' %}?"+new Date().getTime()
    $('#image_code').attr('src',url) //刷新验证码
    }
    </script>
    
    
    1. 在views中校验验证码是否正确
    def registlogic(request):
        code = request.session.get('code')
        if code.lower() ==  request.POST.get('identifycode').lower():
            return HttpResponse("成功")
        else:
            return HttpResponse("失败")
    
    
    1. 在urls中配置templates和views的映射关系

    相关文章

      网友评论

          本文标题:Django图片验证码

          本文链接:https://www.haomeiwen.com/subject/kschrqtx.html