Python3版本Django实现免费极验验证码

1.先到极验验证网站注册一个账号,登录上去
这里写图片描述
2.创建应用
这里写图片描述
这里写图片描述
3.出现如下的id和key
这里写图片描述
4.可以根据安装指引自行学习,也可以按我步骤来
这里写图片描述

极验验证码

在form表单添加代码
提交按钮id必须为:id=”embed-submit”
后面使用ajax时使用

css代码块:

/* 极验验证的样式 */
#embed-captcha {
    width: 300px;
    margin: 0 auto;

}
.show {
    display: block;
}
.hide {
    display: none;
}
#notice {
    color: red;
}
{# 极验验证 #}
<div id="embed-captcha"></div>
<p id="wait" class="show">正在加载验证码......</p>
<p id="notice" class="hide">请先拖动验证码到相应位置</p>
<input type="submit" name="" value="登录" class="input_submit" id="embed-submit">

js代码块

<script>
    var handlerEmbed = function (captchaObj) {
        $("#embed-submit").click(function (e) {
            var validate = captchaObj.getValidate();
            if (!validate) {
                $("#notice")[0].className = "show";
                setTimeout(function () {
                    $("#notice")[0].className = "hide";
                }, 1000);
                e.preventDefault();
            }
        });
        // 将验证码加到id为captcha的元素里,同时会有三个input的值:geetest_challenge, geetest_validate, geetest_seccode
        captchaObj.appendTo("#embed-captcha");
        captchaObj.onReady(function () {
            $("#wait")[0].className = "hide";
        });
        // 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html
    };
    $.ajax({
        // 获取id,challenge,success(是否启用failback)
        url: "/user/pc-geetest/register?t=" + (new Date()).getTime(), // 加随机数防止缓存
        type: "get",
        dataType: "json",
        success: function (data) {
            // 使用initGeetest接口
            // 参数1:配置参数
            // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
            initGeetest({
                gt: data.gt,
                challenge: data.challenge,
                product: "embed", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效
                offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注
                // 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config
            }, handlerEmbed);
        }
    });
</script>

url配置:

    # 极验验证
    url(r'^pc-geetest/register', views.pcgetcaptcha, name='pcgetcaptcha'),

视图views.py:

# 极验验证,请在官网申请ID使用,示例ID不可使用
pc_geetest_id = "910*****************************01"  # id
pc_geetest_key = "73d****************************03"  # key

def pcgetcaptcha(request):
    """极验验证函数"""
    user_id = 'test'
    gt = GeetestLib(pc_geetest_id, pc_geetest_key)
    status = gt.pre_process(user_id)
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    request.session["user_id"] = user_id
    response_str = gt.get_response_str()
    return HttpResponse(response_str)

成功后会出现极验验证码,显示正在加载时需要等待一下,请求别人的网络还没生成验证码,这个验证码已经自带校验是否输入验证码,验证码是否正确:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/chenhua1125/article/details/80113888