0Pricing
Flask Academy · Lekcja

validate_on_submit i tokeny CSRF

Przetwarzaj poprawne żądania POST i blokuj fałszerstwa.

validate_on_submit i tokeny CSRF to bezpłatna lekcja Flask Academy na CoddyKit. To lekcja 3 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.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

The Golden Method

Flask-WTF gives you one method that checks everything at once. validate_on_submit is the heart of safely processing any form. 🔑

What It Actually Checks

validate_on_submit returns True only when the request is a POST and every validator passes. One call covers both conditions.

if form.validate_on_submit():
    pass  # safe to use the data

The Standard View Pattern

This shape repeats in every Flask app: build the form, branch on validate_on_submit, then fall through to render the page.

form = LoginForm()
if form.validate_on_submit():
    return redirect('/home')
return render_template('login.html', form=form)

Submitted vs Valid

Do not confuse the two. is_submitted only checks the method, while validate_on_submit also confirms the data passed every rule.

form.is_submitted()        # POST? 
form.validate_on_submit()  # POST and valid?

Why CSRF Matters

A CSRF attack tricks a logged-in user into submitting a form they never meant to. Tokens prove the request came from your own page.

SECRET_KEY Is Required

CSRF tokens are signed, so Flask needs a SECRET_KEY. Without it, validation fails and Flask-WTF refuses to protect the form.

app.config['SECRET_KEY'] = 'change-me-in-production'

The Token in the Page

That call to hidden_tag embeds the signed token as a hidden input. The browser sends it back with every submission.

{{ form.hidden_tag() }}

Validation Compares Tokens

On submit, Flask-WTF compares the posted token against the session. A missing or stale token makes validate_on_submit return False.

if not form.validate_on_submit():
    pass  # bad token or failed rule

Inspect Why It Failed

When validation fails, look at form.errors. It maps each field name to the list of messages explaining the problem.

if not form.validate_on_submit():
    print(form.errors)

Process Then Redirect

After a successful submit, finish with a redirect. That follows the PRG pattern and stops a refresh from posting twice.

if form.validate_on_submit():
    save(form.data)
    return redirect('/done')

Never Disable CSRF Blindly

You can turn off CSRF for APIs, but never for browser forms. Keeping protection on is what makes Flask-WTF worth using.

Quick Check

When does form.validate_on_submit() return True?

Recap

You leaned on validate_on_submit for the method-plus-rules check, set a SECRET_KEY for signed CSRF tokens, and redirected after success. 🛡️

Często zadawane pytania

Czy lekcja „validate_on_submit i tokeny CSRF” jest bezpłatna?

Tak — pełny tekst „validate_on_submit i tokeny CSRF” 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 „validate_on_submit i tokeny CSRF”?

Przetwarzaj poprawne żądania POST i blokuj fałszerstwa. Ć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 3 z 4.

Ile czasu zajmuje lekcja „validate_on_submit i tokeny CSRF”?

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