Flask Academy · Pelajaran

Validator Kustom dan Error Kolom

Tulis aturan dan tampilkan pesan kepada pengguna.

Pelajaran 4 dari 413 langkah

Validator Kustom dan Error Kolom 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.

Melampaui Bawaan

Validator bawaan mencakup kebutuhan dasar, tetapi aplikasi nyata memiliki aturan yang unik. Sekarang Anda akan menulis validator khusus dan menampilkan kesalahan yang jelas. ✍️

Ingat Set Standar

Anda sudah mengenal DataRequired, Length, dan Email. Aturan khusus ditambahkan di atasnya untuk logika yang tidak dapat ditebak pustaka.

from wtforms.validators import DataRequired, Length, Email

Sisipkan dalam validators

Validator khusus hanyalah fungsi dalam daftar validators milik bidang. Fungsi tersebut menerima formulir dan bidang pada setiap pemeriksaan.

def not_admin(form, field):
    pass

name = StringField('Name', validators=[not_admin])

Ajukan ValidationError

Untuk menolak suatu nilai, ajukan ValidationError dengan sebuah pesan. WTForms menangkapnya dan melampirkan teks tersebut ke bidang itu.

from wtforms.validators import ValidationError

def not_admin(form, field):
    if field.data == 'admin':
        raise ValidationError('Name is reserved.')

Konvensi validate_

Untuk aturan satu bidang, tambahkan metode bernama validate_fieldname pada kelas formulir. WTForms akan memanggilnya secara otomatis.

class SignupForm(FlaskForm):
    username = StringField('Username')

    def validate_username(self, field):
        if len(field.data) < 3:
            raise ValidationError('Too short.')

Validasi terhadap Basis Data

Metode-metode ini dapat menjalankan kode apa pun, jadi periksa basis data untuk menolak username yang sudah digunakan.

def validate_email(self, field):
    if User.query.filter_by(email=field.data).first():
        raise ValidationError('Email already used.')

Kesalahan Masuk ke Bidang

Setiap pesan kegagalan masuk ke dalam field.errors, sebuah daftar sederhana. Daftar kosong berarti bidang tersebut lolos tanpa masalah.

form.username.errors  # ['Too short.']

Tampilkan Kesalahan di Templat

Ulangi kesalahan suatu bidang di Jinja untuk menampilkannya. Pengguna akan melihat hal yang harus diperbaiki tepat di samping masukan.

{% for error in form.username.errors %}
  <span class="err">{{ error }}</span>
{% endfor %}

Semua Kesalahan Sekaligus

Untuk ringkasan, gunakan form.errors. Data tersebut memetakan setiap nama bidang ke daftar pesannya setelah validasi dijalankan.

form.errors  # {'username': ['Too short.']}

Kelas Validator yang Dapat Digunakan Kembali

Untuk aturan yang digunakan kembali, tulislah kelas dengan metode __call__. Konfigurasikan sekali, lalu masukkan ke banyak bidang.

class NoSpaces:
    def __call__(self, form, field):
        if ' ' in field.data:
            raise ValidationError('No spaces allowed.')

Buat Pesan Tetap Membantu

Pesan kesalahan yang baik memberi tahu pengguna cara memperbaiki masalah, bukan sekadar mengatakan bahwa ada yang salah. Kejelasan membangun kepercayaan.

Pemeriksaan Cepat

Bagaimana cara menolak nilai di dalam fungsi validator khusus?

Ringkasan

Anda menambahkan aturan secara langsung, melalui metode validate_fieldname, dan melalui kelas yang dapat digunakan kembali, dengan mengajukan ValidationError serta menampilkan pesan dari field.errors. 🌟

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 “Validator Kustom dan Error Kolom” gratis?

Ya — teks lengkap “Validator Kustom dan Error Kolom” 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 “Validator Kustom dan Error Kolom”?

Tulis aturan dan tampilkan pesan kepada pengguna. 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 “Validator Kustom dan Error Kolom” 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