Flask Academy · Lekcja

Definiowanie klasy FlaskForm

Deklaruj pola i walidatory w Pythonie.

Lekcja 1 z 413 kroki

Definiowanie klasy FlaskForm to bezpłatna lekcja Flask Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Flask Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Flask Academy zawiera 4 lekcji w sumie.

Dlaczego Flask-WTF

Ręczne przetwarzanie surowych danych formularza szybko staje się chaotyczne. Flask-WTF pozwala zadeklarować formularz raz jako klasę Python i używać go ponownie w całej aplikacji. 🎯

Instalowanie rozszerzenia

Flask-WTF opakowuje bibliotekę WTForms i dodaje ochronę CSRF. Zainstaluj ją za pomocą pip, zanim napiszesz choćby jedno pole.

pip install Flask-WTF

Dziedziczenie po FlaskForm

Każdy tworzony formularz jest klasą dziedziczącą po FlaskForm. Ta klasa bazowa zapewnia CSRF i walidację bez dodatkowej pracy.

from flask_wtf import FlaskForm

class LoginForm(FlaskForm):
    pass

Dodawanie pierwszego pola

Pola są atrybutami klasy przypisanymi do obiektów pól. StringField renderuje się jako pole tekstowe i przechowuje wpisany tekst.

from wtforms import StringField

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

Popularne typy pól

WTForms udostępnia wiele typów pól. Należy użyć PasswordField, BooleanField lub SelectField, aby każde pole odpowiadało oczekiwanemu rodzajowi danych.

from wtforms import PasswordField, BooleanField

password = PasswordField('Password')
remember = BooleanField('Remember me')

Nadawanie polom etykiet

Pierwszy argument pola to jego etykieta. Ten tekst szablon wyświetla obok pola, dlatego powinien być zrozumiały dla użytkownika.

email = StringField('Email address')

Dodawanie walidatorów

Przekaż listę validators, aby wymusić określone reguły. DataRequired odrzuca pusty formularz, zanim widok w ogóle zostanie uruchomiony.

from wtforms.validators import DataRequired

username = StringField('Username', validators=[DataRequired()])

Łączenie wielu reguł

Walidatory są uruchamiane po kolei, więc można je łączyć. Najpierw wymagaj wartości, a następnie sprawdź jej długość — wszystko w jednym polu.

from wtforms.validators import DataRequired, Length

name = StringField('Name', validators=[DataRequired(), Length(min=2, max=40)])

Dodawanie przycisku przesyłania

SubmitField staje się przyciskiem formularza. Umieszczenie go w klasie pozwala zachować całą definicję formularza w jednym uporządkowanym miejscu.

from wtforms import SubmitField

submit = SubmitField('Log in')

Kompletna klasa formularza

Po połączeniu wszystkich elementów otrzymujesz wielokrotnego użytku, samodzielnie walidującą się klasę formularza, gotową do utworzenia w dowolnym widoku.

class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Log in')

Tworzenie instancji w widoku

W widoku wystarczy utworzyć instancję. Obiekt formularza przechowuje wtedy pola, dane i błędy dla danego żądania.

@app.route('/login')
def login():
    form = LoginForm()
    return render_template('login.html', form=form)

Szybkie sprawdzenie

Po której klasie bazowej powinny dziedziczyć formularze Flask-WTF?

Podsumowanie

Zdefiniowałeś formularz jako klasę: utworzyłeś podklasę FlaskForm, dodałeś typowane pola z etykietami i walidatorami, a na końcu przycisk przesyłania. Rozwiązanie jest wielokrotnego użytku i przejrzyste. ✨

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Definiowanie klasy FlaskForm” jest bezpłatna?

Tak — pełny tekst „Definiowanie klasy FlaskForm” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Flask Academy, przejdź na CoddyKit PRO. Kurs Flask Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Definiowanie klasy FlaskForm”?

Deklaruj pola i walidatory w Pythonie. Ćwiczysz Flask Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Flask Academy?

Nie wymagamy żadnego doświadczenia. Flask Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Definiowanie klasy FlaskForm”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Flask Academy?

Tak. Każda lekcja Flask Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Definiowanie klasy FlaskForm
  2. Renderowanie i wysyłanie formularza
  3. validate_on_submit i tokeny CSRF
  4. Własne walidatory i błędy pól
← Powrót do Flask Academy