Flask Academy · Pelajaran

validate_on_submit dan Token CSRF

Proses POST yang valid dan blokir pemalsuan.

Pelajaran 3 dari 413 langkah

validate_on_submit dan Token CSRF adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Metode Utama

Flask-WTF menyediakan satu metode yang memeriksa semuanya sekaligus. validate_on_submit adalah inti pemrosesan formulir apa pun dengan aman. 🔑

Apa yang Sebenarnya Diperiksa

validate_on_submit mengembalikan True hanya ketika permintaan berupa POST dan setiap validator berhasil. Satu pemanggilan mencakup kedua kondisi tersebut.

if form.validate_on_submit():
    pass  # safe to use the data

Pola Tampilan Standar

Pola ini berulang di setiap aplikasi Flask: buat formulir, buat percabangan berdasarkan validate_on_submit, lalu lanjutkan untuk merender halaman.

form = LoginForm()
if form.validate_on_submit():
    return redirect('/home')
return render_template('login.html', form=form)

Dikirim vs Valid

Jangan mencampuradukkan keduanya. is_submitted hanya memeriksa metode, sedangkan validate_on_submit juga memastikan data melewati setiap aturan.

form.is_submitted()        # POST? 
form.validate_on_submit()  # POST and valid?

Mengapa CSRF Penting

Serangan CSRF menipu pengguna yang sudah masuk agar mengirim formulir yang tidak pernah ingin mereka kirim. Token membuktikan bahwa permintaan berasal dari halaman Anda sendiri.

SECRET_KEY Diperlukan

Token CSRF ditandatangani, jadi Flask memerlukan SECRET_KEY. Tanpanya, validasi gagal dan Flask-WTF menolak melindungi formulir.

app.config['SECRET_KEY'] = 'change-me-in-production'

Token di Halaman

Pemanggilan hidden_tag tersebut menyematkan token yang ditandatangani sebagai masukan tersembunyi. Peramban mengirimkannya kembali pada setiap pengiriman.

{{ form.hidden_tag() }}

Validasi Membandingkan Token

Saat dikirim, Flask-WTF membandingkan token yang dikirim dengan sesi. Token yang hilang atau kedaluwarsa membuat validate_on_submit mengembalikan False.

if not form.validate_on_submit():
    pass  # bad token or failed rule

Periksa Penyebab Kegagalan

Ketika validasi gagal, periksa form.errors. Data tersebut memetakan setiap nama bidang ke daftar pesan yang menjelaskan masalahnya.

if not form.validate_on_submit():
    print(form.errors)

Proses Lalu Alihkan

Setelah pengiriman berhasil, akhiri dengan pengalihan. Ini mengikuti pola PRG dan mencegah pemuatan ulang mengirim data dua kali.

if form.validate_on_submit():
    save(form.data)
    return redirect('/done')

Jangan Menonaktifkan CSRF Sembarangan

Anda dapat menonaktifkan CSRF untuk API, tetapi jangan pernah melakukannya untuk formulir peramban. Mempertahankan perlindungan tetap aktif membuat Flask-WTF layak digunakan.

Pemeriksaan Cepat

Kapan form.validate_on_submit() mengembalikan True?

Ringkasan

Anda mengandalkan validate_on_submit untuk pemeriksaan metode dan aturan, menetapkan SECRET_KEY untuk token CSRF yang ditandatangani, lalu mengalihkan setelah berhasil. 🛡️

Gratis untuk memulai

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 “validate_on_submit dan Token CSRF” gratis?

Ya — teks lengkap “validate_on_submit dan Token CSRF” 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 “validate_on_submit dan Token CSRF”?

Proses POST yang valid dan blokir pemalsuan. 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 3 dari 4.

Berapa lama pelajaran “validate_on_submit dan Token CSRF” 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

  1. Tentukan Class FlaskForm
  2. Render dan Kirim Formulir
  3. validate_on_submit dan Token CSRF
  4. Validator Kustom dan Error Kolom
← Kembali ke Flask Academy