Flask Academy · Les

Redirect na POST (PRG-patroon)

Voorkom dubbele verzendingen met een redirect.

Les 4 van 413 stappen

Redirect na POST (PRG-patroon) is een gratis Flask Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Flask Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Flask Academy bevat in totaal 4 lessen.

Het probleem van dubbel verzenden

Na het verzenden van een formulier verstuurt vernieuwen dezelfde gegevens opnieuw. Dat kan dubbele bestellingen, reacties of aanmeldingen veroorzaken. 😬

Waarom vernieuwen opnieuw verzendt

De browser onthoudt het laatste verzoek. Als je een pagina opnieuw laadt die het resultaat was van een POST, wordt die POST gewoon opnieuw uitgevoerd.

Maak kennis met Post Redirect Get

De oplossing is het PRG-patroon: accepteer de POST en stuur de browser daarna door naar een gewone GET-pagina, in plaats van die direct te renderen.

Verwerk de POST

Doe eerst het echte werk in de POST-tak: sla het record op, belast de kaart, of doe wat het formulier ook moest doen.

if request.method == "POST":
    save_comment(request.form["text"])

Stuur door, render niet

Retourneer geen template, maar een doorverwijzing. De browser voert daarna een nieuwe GET uit die veilig opnieuw kan worden geladen.

from flask import redirect
return redirect("/thanks")

Bouw het doel met url_for

Vermijd hardgecodeerde paden. Gebruik url_for, zodat het doel van de doorverwijzing je routenamen blijft volgen, ook als URL's later veranderen.

return redirect(url_for("thanks"))

De 302-status

Een doorverwijzing stuurt een 302-antwoord dat de browser vertelt een andere URL op te halen. Dat tweede verzoek is de veilige GET.

De GET-handler

De doelroute is een gewone GET-view. Deze toont alleen een bevestigingspagina en kan de hele dag worden vernieuwd zonder neveneffecten.

@app.route("/thanks")
def thanks():
    return render_template("thanks.html")

Neem een flashbericht mee

Wil je zeggen dat het is gelukt? Stel vóór het doorsturen een eenmalig flash-bericht in en toon dit op de bestemmingspagina.

from flask import flash
flash("Saved!")
return redirect(url_for("thanks"))

Stuur ook bij fouten door

Als de validatie mislukt, kun je het probleem als flashbericht opslaan en terug naar het formulier doorsturen, zodat elk pad veilig opnieuw kan worden geladen.

if errors:
    flash("Fix the form")
    return redirect(url_for("signup"))

De volledige PRG-view

Verwerk en stuur daarna door. Deze PRG-structuur is de standaard voor elk formulier dat gegevens op de server wijzigt.

@app.route("/comment", methods=["POST"])
def comment():
    save_comment(request.form["text"])
    return redirect(url_for("thanks"))

Korte controle

Waarom voorkomt PRG die onbedoelde duplicaten?

Samenvatting: PRG-patroon

Je hebt de POST verwerkt, met url_for naar een GET doorgestuurd, flash gebruikt voor berichten en elke vernieuwing veilig gemaakt. 🎉

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Redirect na POST (PRG-patroon)” gratis?

Ja — de volledige tekst van “Redirect na POST (PRG-patroon)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Flask Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Flask Academy bevat in totaal 4 lessen.

Wat leer ik in “Redirect na POST (PRG-patroon)”?

Voorkom dubbele verzendingen met een redirect. Je oefent met Flask Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Flask Academy te beginnen?

Ervaring vooraf is niet nodig. Flask Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Redirect na POST (PRG-patroon)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Flask Academy?

Ja. Elke les over Flask Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Een HTML-formulier bouwen dat POST gebruikt
  2. Queryparameters lezen en standaardwaarden geven
  3. Verplichte velden handmatig valideren
  4. Redirect na POST (PRG-patroon)
← Terug naar Flask Academy