django-simple-captcha
A very simple, yet powerful, Django captcha application
What it is and what it does
Django Simple Captcha is a form-level security middleware that generates and validates CAPTCHA challenges—typically image-based with text, math problems, or dictionary words—to prevent automated form submission and bot attacks. It integrates directly into Django forms and supports custom challenge generators, noise filters, and image transformations to vary the visual appearance of each challenge.
The package is designed for ease of deployment with sensible defaults but offers extensive customization: you can define your own challenge logic, alter image rendering, and enable optional text-to-speech audio output for accessibility. It depends on Django, Pillow (for image generation), and django-ranged-response; Flite is an optional system dependency for audio output. The package is actively maintained and compatible with Django 4.2+ and Python 3.8+.
Use it for:
- Protect user registration or login forms from automated account creation and credential stuffing attacks
- Prevent spam submissions in contact forms, comment systems, or feedback widgets
- Add accessibility-compliant CAPTCHA with audio alternatives for users who cannot read distorted text
- Customize challenge types (math, word puzzles, custom logic) for domain-specific bot prevention
- Implement CAPTCHA with AJAX refresh to let users request new challenges without page reload
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds CAPTCHA image challenges to Django forms with customizable text, math, or audio challenges, and supports text-to-speech accessibility.
Yes. Active maintenance, no known vulnerabilities, low install friction, and permissive MIT license make it a safe choice. Install if you need form-level bot protection in Django with customizable challenges and accessibility support. Verify that your environment can satisfy Pillow's FreeType dependency before deployment.
Install
django-simple-captcha on PyPI
pip
pip install django-simple-captchauv
uv add django-simple-captchapoetry
poetry add django-simple-captchaInstalling django-simple-captcha
Before you install
Low friction install with wheel distribution. Active maintenance—last commit 2026-07-30, 15 days old. Depends on Django, Pillow (requires FreeType compilation), and django-ranged-response. Text-to-speech audio requires Flite, but is optional.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install django-simple-captcha
# In Django form:
from captcha.fields import CaptchaField
class MyForm(forms.Form):
captcha = CaptchaField()
# Render and validate in view as normal Django form
Pillow must be compiled with FreeType support; Flite system library is required only if audio output is enabled
Verify before relying
- Whether Pillow's FreeType requirement is satisfied by standard pip installs or requires system-level compilation
- Performance characteristics when handling high-volume form submissions with captcha generation
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — Django, Pillow, django-ranged-response |
| Maintenance | actively maintained — 15 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 253,600/month — #8,515 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_simple_captcha-0.7.0-py2.py3-none-any.whl
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
captchaGenerates audio and image CAPTCHAs for use in…
permissive · top 15,000 on PyPI
django-recaptchaIntegrates Google reCAPTCHA (V2 Checkbox, V2…
permissive · top 15,000 on PyPI
www-authenticateParses WWW-Authenticate HTTP headers into…
permissive · top 15,000 on PyPI
recognizerSolves reCAPTCHA challenges using AI-based…
permissive · top 15,000 on PyPI
capsolverCapsolver is a Python client library for…
permissive · top 15,000 on PyPI
2captcha-pythonA Python client for the 2Captcha API that…
permissive · top 15,000 on PyPI
anticaptchaofficialSolves CAPTCHAs and related challenges (image…
permissive · top 15,000 on PyPI
django-summernoteEmbeds the Summernote WYSIWYG editor into…
permissive · top 15,000 on PyPI
Flask-WTFFlask-WTF integrates WTForms with Flask to…
permissive · top 5,000 on PyPI
djangorestframework-simplejwtProvides JSON Web Token (JWT) authentication…
permissive · top 5,000 on PyPI