Django
TrustCaptcha – Protection anti-bots

Intégration CAPTCHA Django

Intégrez TrustCaptcha dans une vue Django avec quelques lignes de Python. Stoppez le spam automatisé sur les connexions, inscriptions et formulaires de contact — sans casser la protection CSRF ni vos classes forms.Form existantes. Hébergé dans l’UE, conforme RGPD et sans énigmes visuelles.

Démarrage rapide

Comment fonctionne l'intégration

1. Créer un CAPTCHA

Créez un compte utilisateur ou connectez-vous avec un compte existant. Ensuite, créez un nouveau CAPTCHA ou sélectionnez-en un existant. Si vous ne savez pas encore si TrustCaptcha vous convient, essayez notre service CAPTCHA sans risque pendant 14 jours gratuitement.

Sur la page d’aperçu du CAPTCHA, vous trouverez toutes les informations importantes, comme la clé de site et la clé de licence, et vous pouvez aussi y créer votre API key. Autorisez simplement vos sites web à utiliser votre CAPTCHA en les ajoutant à la liste des domaines autorisés dans les règles de sécurité du CAPTCHA.

Début du formulaire de création du CAPTCHA.
Règles de sécurité CAPTCHA d’un CAPTCHA de démonstration.

2. Ajouter le widget CAPTCHA dans votre template Django

Placez le widget TrustCaptcha dans le template Django qui rend votre formulaire. Le widget s’exécute en arrière-plan et ajoute un champ caché tc-verification-token lors de l’envoi, qui arrive sur request.POST comme tout autre input.

templates/contact.html
HTML
<script type="module" src="https://cdn.trustcomponent.com/trustcaptcha/3.0.x/trustcaptcha.esm.min.js"></script>

<form method="post" action="{% url 'contact_submit' %}">
    {% csrf_token %}
    <input type="email" name="email" required>
    <trustcaptcha-component sitekey="<your_site_key>"></trustcaptcha-component>
    <button type="submit">Send</button>
</form>

Le widget CAPTCHA s’affichera ensuite dans votre formulaire :

CAPTCHA terminé

Besoin d’informations détaillées sur l’intégration du widget CAPTCHA ?
Pour la référence complète du widget — y compris thèmes, langues, design personnalisé et plus encore — veuillez consulter notre documentation.

Lire la documentation

3. Valider le jeton dans votre vue Django

Dans votre vue Django, récupérez le jeton de vérification depuis request.POST, consultez le résultat via notre bibliothèque Python et décidez si la requête doit être acceptée.

Commencez par installer notre bibliothèque Python TrustCaptcha :

Install
bash
pip install "trustcaptcha>=3.0.0,<4.0.0"

Validez ensuite le jeton dans votre vue Django et agissez en fonction du résultat :

contact/views.py
Python
from django.shortcuts import redirect, render
from django.views.decorators.http import require_POST
from trustcaptcha.trust_captcha import TrustCaptcha

@require_POST
def submit(request):
    token = request.POST.get("tc-verification-token", "")

    try:
        trust_captcha = TrustCaptcha("<your_api_key>")
        result = trust_captcha.get_verification_result(token)
    except Exception:
        return render(request, "contact.html", {"error": "CAPTCHA verification failed."})

    if not result.verification_passed or result.score > 0.5:
        return render(request, "contact.html", {"error": "CAPTCHA verification failed."})

    # CAPTCHA validé — traiter la requête
    return redirect("contact_success")

Besoin d’informations détaillées sur l’intégration CAPTCHA Django ?
Pour des instructions détaillées étape par étape — y compris une intégration Django Form qui exécute la vérification dans clean_*() — veuillez consulter notre documentation.

Lire la documentation

Un autre framework backend que Django ?
Si vous utilisez un autre framework, choisissez la recette correspondante ici. Si votre framework n’est pas listé, vos développeurs peuvent intégrer la vérification eux-mêmes à l’aide de notre documentation ou contacter notre équipe support pour demander une intégration préconstruite.

Actix Web
ASP.NET Core
Axum
Django
Echo
Express
FastAPI
Fastify
Fiber
Flask
Gin
Hapi
Laravel
Micronaut
NestJS
Next.js
Quarkus
Ruby on Rails
Sinatra
Spring Boot
Symfony

4. Félicitations 🎉

Vous êtes maintenant protégé par TrustCaptcha — félicitations !

CAPTCHA terminé

FAQs

Où dans une application Django a lieu la vérification CAPTCHA ?
Dans la vue qui traite la soumission du formulaire, avant d’enregistrer le modèle ou d’envoyer l’e-mail. Le jeton CAPTCHA arrive comme un champ de formulaire classique sur request.POST (nom par défaut : « tc-verification-token »).
TrustCaptcha remplace-t-il la protection CSRF de Django ?
Non. CSRF et TrustCaptcha sont des couches indépendantes — les deux doivent rester activées. Conservez {% csrf_token %} dans votre template et le middleware CSRF dans les settings ; TrustCaptcha confirme uniquement qu’un humain a rempli le formulaire.
Puis-je intégrer le CAPTCHA dans un Django Form (forms.Form / ModelForm) ?
Oui. Ajoutez un CharField caché pour le jeton (par exemple tc_verification_token) et placez l’appel de vérification dans une méthode clean_tc_verification_token. Les erreurs de validation apparaissent ensuite sur le formulaire bound comme n’importe quelle autre erreur de champ.
Pourquoi le champ du formulaire utilise un underscore (tc_verification_token) alors que le widget poste avec un tiret (tc-verification-token) ?
Les identifiants Python ne peuvent pas contenir de tiret, le champ du Form s’appelle donc tc_verification_token. La solution la plus simple est de définir token-field-name="tc_verification_token" sur le widget afin que le format réseau corresponde au champ du Form.
TrustCaptcha fonctionne-t-il dans des vues Django asynchrones ?
Oui. Le SDK Python est bloquant, encapsulez donc l’appel dans une vue async avec sync_to_async : result = await sync_to_async(trust_captcha.get_verification_result)(token). La boucle d’événements reste réactive pendant l’exécution de la vérification.
Où conserver la clé d’API CAPTCHA dans un projet Django ?
Dans une variable d’environnement (par exemple TRUSTCAPTCHA_API_KEY), exposée via settings.py en tant que settings.TRUSTCAPTCHA_API_KEY. Lisez-la depuis les settings dans votre vue ou form, ne la codez jamais en dur.
Vous perdez des prospects à cause des CAPTCHAs ?

TrustCaptcha bloque le spam et les bots, pas vos clients. Sans puzzle, conforme au RGPD, hébergé en UE.

Début du CAPTCHA
CAPTCHA terminé
UX sans énigmes
Fonctionne en arrière-plan pendant que les visiteurs saisissent leurs informations — ainsi davantage de personnes terminent vos formulaires et moins abandonnent.
Compatible RGPD
Hébergé dans l’UE et conçu dans une logique privacy-first : pas de cookies, transmission chiffrée, nettoyage automatique — avec des ressources juridiques prêtes à l’emploi.
Sécurité multicouche
Une protection adaptative et un scoring de risque intelligent stoppent les abus très tôt — même en cas de pic d’attaques.
Contrôle total
Ajustez la sensibilité, définissez des listes d’autorisation/refus et utilisez le géoblocage — c’est vous qui décidez du niveau de strictesse de la vérification.

Protégez votre application Django avec TrustCaptcha en quelques étapes !

  • Hébergé en UE & conforme RGPD
  • Aucun puzzle
  • Essai gratuit de 14 jours