Study
Flask

Forms & Validasi dengan Flask-WTF

Penjelasan

Menangani form manual lewat request.form bisa cukup untuk kasus sederhana, tapi untuk validasi kompleks dan proteksi CSRF, komunitas Flask umumnya pakai Flask-WTF (wrapper WTForms). Kamu mendefinisikan form sebagai class yang mewarisi FlaskForm, dengan field seperti StringField, PasswordField, atau SubmitField, masing-masing bisa diberi validators seperti DataRequired() atau Email(). Flask-WTF otomatis menyisipkan CSRF token tersembunyi di form, dan form.validate_on_submit() mengecek sekaligus apakah request adalah POST dan semua validasi lolos.

Contoh Konsep

# pip install flask-wtf
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired, Length

class ProdukForm(FlaskForm):
    nama = StringField('Nama Produk', validators=[DataRequired(), Length(min=3)])
    submit = SubmitField('Simpan')

@app.route('/produk/baru', methods=['GET', 'POST'])
def produk_baru():
    form = ProdukForm()
    if form.validate_on_submit():
        return f'Produk {form.nama.data} tersimpan'
    return render_template('form_produk.html', form=form)

Praktikum

Lengkapi form KategoriForm agar field 'nama' wajib diisi minimal 3 karakter.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Set app.config['SECRET_KEY'] sebelum pakai Flask-WTF — CSRF token butuh secret key untuk ditandatangani, kalau lupa akan muncul error saat render form.