Django Simple Captcha
About
Django Simple Captcha is an extremely simple, yet highly customizable Django application to add captcha images to any Django form.
Usage
Sample view:
from django import forms
from captcha.fields import CaptchaField
from django.shortcuts import render_to_response
class CaptchaTestForm(forms.Form):
myfield = AnyOtherField()
captcha = CaptchaField()
"""
# or, as a ModelForm:
class CaptchaTestModelForm(forms.ModelForm):
captcha = CaptchaField()
class Meta:
model = MyModel
"""
def home(request):
if request.POST:
form = CaptchaTestForm(request.POST)
# Validate the form: the captcha field will automatically
# check the input
if form.is_valid():
human = True
else:
form = CaptchaTestForm()
return render_to_response('base.html',locals())
Features
- Very simple to setup and deploy, yet very configurable
- Can use custom challenges (e.g. random chars, simple maths, dictionary word, ...)
- Custom generators, noise and filter functions alter the look of the generated image
- Supports text-to-speech audio output of the challenge text, for improved accessibility
Requirements
- Django 1.0+
- A fairly recent version of the Python Imaging Library (PIL) compiled with FreeType support
- Flite is required for text-to-speech (audio) output, but not mandatory
Installation
- Download the 'captcha' application an put it anywhere in your Python path
- Add 'captcha' to the INSTALLED_APPS in your settings.py
- Run manage.py syncdb to create the required database tables
- Add an entry to your urls.py:
urlpatterns += patterns('',
url(r'^captcha/', include('captcha.urls')),
)Configuration
See CaptchaConfiguration for details on available configuration settings.
Generators
See CaptchaGenerators for a list of available challenge generator functions.
