0Pricing
Flask Academy · Aula

Redirecione após o POST (padrão PRG)

Evite envios duplicados usando um redirecionamento.

Redirecione após o POST (padrão PRG) é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

The Double Submit Problem

After a form post, hitting refresh resends the same data. That can create duplicate orders, comments, or signups. 😬

Why Refresh Repeats

The browser remembers the last request. Reloading a page that was the result of a POST simply fires that POST again.

Meet Post Redirect Get

The fix is the PRG pattern: accept the POST, then redirect the browser to a plain GET page instead of rendering directly.

Process the POST

First do the real work inside the POST branch: save the record, charge the card, whatever the form was for.

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

Redirect, Do Not Render

Instead of returning a template, return a redirect. The browser then makes a fresh GET that is safe to refresh.

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

Build the Target With url_for

Avoid hardcoded paths. Use url_for so the redirect target follows your route names even if URLs change later.

return redirect(url_for("thanks"))

The 302 Status

A redirect sends a 302 response telling the browser to go fetch another URL. That second request is the safe GET.

The GET Handler

The target route is an ordinary GET view. It just shows a confirmation page and can be refreshed all day with no side effects.

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

Carry a Flash Message

Want to say it worked? Set a one time flash message before redirecting and show it on the destination page.

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

Redirect on Errors Too

If validation fails, you can flash the problem and redirect back to the form, keeping every path refresh safe.

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

The Full PRG View

Process, then redirect. This PRG shape is the standard for any form that changes data on the server.

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

Quick Check

Why does PRG stop those accidental duplicates?

Recap: PRG Pattern

You processed the POST, redirected to a GET with url_for, used flash for messages, and made every refresh safe. 🎉

Perguntas Frequentes

A aula “Redirecione após o POST (padrão PRG)” é grátis?

Sim — o texto completo de “Redirecione após o POST (padrão PRG)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.

O que vou aprender em “Redirecione após o POST (padrão PRG)”?

Evite envios duplicados usando um redirecionamento. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Flask Academy?

Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Redirecione após o POST (padrão PRG)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Flask Academy?

Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Crie um formulário HTML que faça POST
  2. Leia e defina valores padrão para parâmetros de consulta
  3. Valide manualmente os campos obrigatórios
  4. Redirecione após o POST (padrão PRG)
← Voltar para Flask Academy