Rozdział 22 · Tworzenie stron internetowych z Python

Routing w Flask: URL i funkcje obsługi

Od HTTP- żądania do wywołania funkcji - Flask. urządzenie routingu

Rozdział 22.5 już pokazał @app.route("/") — ale co dokładnie Flask to robi z tym dekoratorem? Przyjrzyjmy się całej ścieżce pojedynczego żądania wewnątrz aplikacji.

GET /task/42
HTTP-request z przeglądarki
Router Flask
szuka odpowiedniej reguły
Funkcja Handlera
view function
Szablon lub dane
treść odpowiedzi jest budowana
HTTP- odpowiedź
wraca do przeglądarki
Pojedyncza ścieżka żądań wewnątrz Flask- aplikacji

Każde wyzwanie @app.route(...) rejestry rządy (URL rule) to na przykład sam szablon ścieżki /task/<int:task_id>. Całość wszystkich reguł nazywana jest trasowanie (routing). Każda zasada również punkt końcowy (endpoint) to symboliczna nazwa, pod którą Flask zna powiązaną funkcja: domyślnie jest to nazwa samej funkcji. Przez końcowy, a nie przez URL bezpośrednio, url_for(...) tworzy adres — pozwala to zmienić samą ścieżkę, bez dotykając kodu, który się do niego odnosi. Gdy nadejdzie żądanie, Flask przeszukuje Zarejestrowana reguła, która odpowiada ścieżce i metodzie oraz wywołuje powiązane funkcję-obslugę – już widzieliście ten mechanizm w sekcji 22.5, po prostu Bez tytułów.

Parametr ścieżki to typowa część URL

Część ścieżki w nawiasach kątowych Flask przekazuje funkcji jako argument. Możesz ją określić Oczekiwany typ jest zgodny z regułą:

path_param.py
@app.route("/task/<int:task_id>")
def poluchit_zadachu(task_id):
    return f"Zadanie nr {{task_id}}"
<int:task_id> — niebędący liczbą adres odchyla się przed wywołaniem funkcji
Jeśli otworzyć /task/abc, Flask nie spowoduje poluchit_zadachu() ogólnie to reguła <int:task_id> wymaga liczby całkowitej, a żądanie otrzyma standardową odpowiedź 404 (sekcja 22.9) zanim dotrze do kodu.

Funkcja obsługiwa zwraca treść odpowiedzi

To, co zwraca funkcja, staje się ciałem HTTP-odpowiedzi: łańcuch znaków, renderowany szablon (rozdział 22.12) lub na przykład słownik — taki słownik Flask przekształca w JSON (rozdziały 22.15-22.16). Dlatego kontrolery nazywają funkcjami widoku (view functions): ich zadaniem jest przygotowanie widoku danych dla konkretnego zapytania.

Praktyka: Trasy i parametry ścieżek
Moduł flask nie jest zainstalowany w środowisku przeglądarki Pyodide – działa lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →