欢迎访问宙启技术站
智能推送

使用captcha.fieldsReCaptchaField()实现reCAPTCHA验证码的Python示例

发布时间:2024-01-01 02:24:29

reCAPTCHA是一种常用的验证码机制,用于确认网站用户是否为真实人类而不是机器人。在Python中,可以使用captcha.fields.ReCaptchaField()类来添加reCAPTCHA验证码到Django表单中。

首先,需要安装相关的依赖库。可以使用pip命令来安装django-recaptcha库:

pip install django-recaptcha

安装完成后,在Django的表单类中引入ReCaptchaField类:

from captcha.fields import ReCaptchaField

class MyForm(forms.Form):
    captcha = ReCaptchaField()

在上面的示例中,ReCaptchaField将会创建一个用于输入验证码的字段。它会显示一个reCAPTCHA的输入框,要求用户输入验证码以及选择相应的图像来证明他们是真实人类。

然后,在视图函数中实例化表单对象并传递给模板进行渲染:

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # 处理表单数据
            pass
    else:
        form = MyForm()
    return render(request, 'my_template.html', {'form': form})

在模板my_template.html中,使用{{ form }}来呈现表单字段:

<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">提交</button>
</form>

当用户提交表单时,Django会自动验证reCAPTCHA验证码的正确性,并将结果存储在表单的cleaned_data中。可以在视图函数中通过form.cleaned_data['captcha']来获取验证码的值。

需要注意的是,使用reCAPTCHA验证码需要进行一些配置。首先,在settings.py文件中,添加RECAPTCHA_PUBLIC_KEYRECAPTCHA_PRIVATE_KEY的配置项,这些值可以在reCAPTCHA网站上注册并获取:

RECAPTCHA_PUBLIC_KEY = 'your-public-key'
RECAPTCHA_PRIVATE_KEY = 'your-private-key'

然后,在模板中添加reCAPTCHA的JS脚本链接:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

以上就是使用captcha.fields.ReCaptchaField()实现reCAPTCHA验证码的Python示例。记得在使用之前进行配置,并根据具体需求进行个性化设置。