0Pricing
Flask Academy · Lektion

Benutzerdefinierte Validatoren und Feldfehler

Schreiben Sie Regeln und zeigen Sie Meldungen für Benutzer an.

Benutzerdefinierte Validatoren und Feldfehler ist eine kostenlose Flask Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Flask Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Flask Academy-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Beyond Built-Ins

Built-in validators cover the basics, but real apps have unique rules. Now you will write custom validators and surface clear errors. ✍️

Recall the Standard Set

You already know DataRequired, Length, and Email. Custom rules layer on top of these for logic the library cannot guess.

from wtforms.validators import DataRequired, Length, Email

Inline with validators

A custom validator is just a function in the field's validators list. It receives the form and the field on every check.

def not_admin(form, field):
    pass

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

Raise ValidationError

To reject a value, raise ValidationError with a message. WTForms catches it and attaches the text to that field.

from wtforms.validators import ValidationError

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

The validate_ Convention

For a one-field rule, add a method named validate_fieldname on the form class. WTForms calls it automatically.

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

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

Validate Against the Database

These methods can run any code, so check the database to reject a username that is already taken.

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

Errors Land on the Field

Each failed message goes into field.errors, a simple list. An empty list means that field passed cleanly.

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

Show Errors in the Template

Loop over a field's errors in Jinja to display them. Users see exactly what to fix right beside the input.

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

All Errors at Once

For a summary, use form.errors. It maps every field name to its list of messages after validation runs.

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

Reusable Validator Classes

For rules you reuse, write a class with a __call__ method. Configure it once, then drop it into many fields.

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

Keep Messages Helpful

Good error messages tell the user how to fix the problem, not just that something is wrong. Clarity builds trust.

Quick Check

How do you reject a value inside a custom validator function?

Recap

You added rules inline, via validate_fieldname methods, and reusable classes, raising ValidationError and showing messages from field.errors. 🌟

Häufig gestellte Fragen

Ist die Lektion „Benutzerdefinierte Validatoren und Feldfehler“ kostenlos?

Ja — der vollständige Text von „Benutzerdefinierte Validatoren und Feldfehler“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Flask Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Flask Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Benutzerdefinierte Validatoren und Feldfehler“?

Schreiben Sie Regeln und zeigen Sie Meldungen für Benutzer an. Du übst Flask Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Flask Academy zu starten?

Keine Vorkenntnisse erforderlich. Flask Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Benutzerdefinierte Validatoren und Feldfehler“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Flask Academy-Lektion Code schreiben und ausführen?

Ja. Jede Flask Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Eine FlaskForm-Klasse definieren
  2. Ein Formular rendern und übermitteln
  3. validate_on_submit und CSRF-Tokens
  4. Benutzerdefinierte Validatoren und Feldfehler
← Zurück zu Flask Academy