Python-reCaptcha is a pythonic and well-documented reCAPTCHA client that supports all the features of the remote API to generate and verify CAPTCHA challenges. To add to your Django project, you need captcha public, private keys are required.
How to integrate reCaptcha with Django?
Following gives you a brief idea of how to integrate reCaptcha to Django application
in settings.py
CAPTCHA_PUBLIC = 'XXXXXXXXXXXXXXXXXX'
CAPTCHA_PRIVATE = 'XXXXXXXXXXXXXXXXXX'
Render the reCaptcha to corresponding HTML page
in views.py
recaptcha = captcha.displayhtml(CAPTCHA_PUBLIC)
#displayhtml() gives the captcha object to be displayed on html
return render_to_response('demo.html','recaptcha':recaptcha)
in demo.html
<form action="/" method="post">
{{recaptcha|safe}}
<button class="submit" type="submit">Submit</button>
</form>
Validate the challenge field and response fields.
in views.py
capresponse = captcha.submit( request.POST.get('recaptcha_challenge_field'),
request.POST.get('recaptcha_response_field'),
CAPTCHA_PRIVATE,
request.META.get('REMOTE_ADDR'))
'''checks if the catpcha is valid or not(challenge field and response fields are equal or not '''
if capresponse.is_valid:
do_some_work()
else:
return HttpResponse('wrong captcha text')