Django Academy · Lektion

CSRF-Schutz und der POST-Ablauf

Verarbeiten Sie den GET/POST-Übermittlungszyklus sicher.

Lektion 4 von 413 Schritte

CSRF-Schutz und der POST-Ablauf ist eine kostenlose Django Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Django Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

What CSRF Is

CSRF tricks a logged-in user into submitting a hidden request. Django blocks it so attackers cannot act on a user's behalf. 🔒

Protection Is On

Django enables CsrfViewMiddleware by default, so every unprotected POST is rejected until you add the right token.

The csrf_token Tag

Add {% csrf_token %} inside every POST form. It injects a hidden field with a per-session secret token.

<form method="post">
  {% csrf_token %}
</form>

Why It Works

The token proves the request came from your own page. A forged form on another site cannot guess it, so the POST fails.

GET Shows the Form

A GET request displays a blank, unbound form so the user can start typing their input.

if request.method == "GET":
    form = ContactForm()

POST Submits the Data

A POST sends the filled values back. You bind them to the form and run validation before doing anything.

if request.method == "POST":
    form = ContactForm(request.POST)

Validate Then Act

If the bound form is_valid(), process cleaned_data: save it, send an email, or whatever the form is for.

if form.is_valid():
    save(form.cleaned_data)

Redirect After Success

On success, redirect to a new URL. This Post/Redirect/Get pattern stops a refresh from resubmitting the data.

return redirect("thanks")

Re-render on Errors

If validation fails, re-render the same template with the bound form. It still holds the input and shows each error.

return render(request, "contact.html",
    {"form": form})

The Full Pattern

This GET-to-show, POST-to-process shape is the standard form view. One view handles both methods cleanly.

form = ContactForm(request.POST or None)
if form.is_valid():
    return redirect("thanks")

Mind AJAX Requests

JavaScript POSTs must send the token in the X-CSRFToken header, read from the csrftoken cookie, or Django rejects them.

Quick Check

Check your CSRF and POST knowledge.

Recap

Add csrf_token to every POST form. GET shows the form, POST validates it, then redirect on success or re-render on errors. ✅

Kostenlos starten

Lerne Python mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
30
Lektionen
120

Häufig gestellte Fragen

Ist die Lektion „CSRF-Schutz und der POST-Ablauf“ kostenlos?

Ja — der vollständige Text von „CSRF-Schutz und der POST-Ablauf“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Django Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „CSRF-Schutz und der POST-Ablauf“?

Verarbeiten Sie den GET/POST-Übermittlungszyklus sicher. Du übst Django Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Django Academy zu starten?

Keine Vorkenntnisse erforderlich. Django Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „CSRF-Schutz und der POST-Ablauf“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Django Academy-Lektion Code schreiben und ausführen?

Ja. Jede Django Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ein forms.Form definieren
  2. is_valid und cleaned_data
  3. Formulare in Templates rendern
  4. CSRF-Schutz und der POST-Ablauf
← Zurück zu Django Academy