Definiowanie klasy FlaskForm
Deklaruj pola i walidatory w Pythonie.
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-WTFDziedziczenie 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):
passDodawanie 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. ✨
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
- Definiowanie klasy FlaskForm
- Renderowanie i wysyłanie formularza
- validate_on_submit i tokeny CSRF
- Własne walidatory i błędy pól