Alihkan Setelah POST (Pola PRG)
Hindari pengiriman ganda dengan pengalihan.
Alihkan Setelah POST (Pola PRG) adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Flask Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Flask Academy mencakup 4 pelajaran total.
Masalah Pengiriman Ganda
Setelah pengiriman formulir, menekan segarkan akan mengirim ulang data yang sama. Hal ini dapat membuat pesanan, komentar, atau pendaftaran duplikat. 😬
Mengapa Penyegaran Mengulang
Peramban mengingat permintaan terakhir. Memuat ulang halaman yang merupakan hasil dari POST akan mengirimkan POST tersebut lagi.
Kenali Post Redirect Get
Solusinya adalah pola PRG: terima POST, lalu arahkan peramban ke halaman GET biasa alih-alih merendernya secara langsung.
Proses POST
Pertama, lakukan pekerjaan sebenarnya di dalam cabang POST: simpan catatan, kenai biaya kartu, atau apa pun yang menjadi tujuan formulir tersebut.
if request.method == "POST":
save_comment(request.form["text"])Arahkan, Jangan Render
Alih-alih mengembalikan templat, kembalikan pengalihan. Peramban kemudian membuat GET baru yang aman untuk disegarkan.
from flask import redirect
return redirect("/thanks")Buat Target dengan url_for
Hindari jalur yang ditulis secara permanen. Gunakan url_for agar target pengalihan mengikuti nama route Anda meskipun URL berubah nanti.
return redirect(url_for("thanks"))Status 302
Pengalihan mengirim respons 302 yang memberi tahu peramban untuk mengambil URL lain. Permintaan kedua itulah GET yang aman.
Penangan GET
Route target adalah tampilan GET biasa. Route itu hanya menampilkan halaman konfirmasi dan dapat disegarkan sepanjang hari tanpa efek samping.
@app.route("/thanks")
def thanks():
return render_template("thanks.html")Bawa Pesan Flash
Ingin mengatakan bahwa proses berhasil? Tetapkan pesan flash satu kali sebelum mengarahkan, lalu tampilkan pesan tersebut di halaman tujuan.
from flask import flash
flash("Saved!")
return redirect(url_for("thanks"))Arahkan Juga saat Terjadi Galat
Jika validasi gagal, Anda dapat melakukan flash terhadap masalah tersebut dan mengarahkan kembali ke formulir, sehingga setiap jalur tetap aman untuk disegarkan.
if errors:
flash("Fix the form")
return redirect(url_for("signup"))Tampilan PRG Lengkap
Proses, lalu arahkan. Bentuk PRG ini adalah standar untuk formulir apa pun yang mengubah data di server.
@app.route("/comment", methods=["POST"])
def comment():
save_comment(request.form["text"])
return redirect(url_for("thanks"))Pemeriksaan Singkat
Mengapa PRG menghentikan duplikat yang tidak disengaja?
Rangkuman: Pola PRG
Anda memproses POST, mengarahkan ke GET dengan url_for, menggunakan flash untuk pesan, dan membuat setiap penyegaran aman. 🎉
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Alihkan Setelah POST (Pola PRG)” gratis?
Ya — teks lengkap “Alihkan Setelah POST (Pola PRG)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Flask Academy, upgrade ke CoddyKit PRO. Kursus Flask Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Alihkan Setelah POST (Pola PRG)”?
Hindari pengiriman ganda dengan pengalihan. Kamu berlatih Flask Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Flask Academy?
Tidak diperlukan pengalaman sebelumnya. Flask Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Alihkan Setelah POST (Pola PRG)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Flask Academy ini?
Ya. Setiap pelajaran Flask Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Bangun Formulir HTML yang Mengirim Data
- Baca dan Beri Nilai Bawaan pada Parameter Kueri
- Validasi Kolom Wajib Secara Manual
- Alihkan Setelah POST (Pola PRG)