Python Lernhandbuch

Kapitel 14: Webapplikation mit FastAPI und Jinja2 · Abschnitt 2 von 5

Die erste Route

python
from fastapi import FastAPI

app = FastAPI()

@app.get('/hallo')
def hallo(name: str = 'Welt'):
    return {'gruss': f'Hallo {name}'}

Starten: uv run fastapi dev main.py. Danach http://localhost:8000/hallo?name=Anna im Browser öffnen. Die interaktive Dokumentation findest du unter http://localhost:8000/docs. Der Entwicklungsserver startet bei Codeänderungen automatisch neu.

Was passiert:

  • @app.get('/hallo') ist ein Dekorator: Er registriert die darunter stehende Funktion für HTTP-GET-Anfragen auf dem Pfad /hallo.
  • Der Parameter name taucht nicht im Pfad auf, also erwartet FastAPI ihn als Abfrageparameter (?name=...). Der Typ str und der Standardwert machen ihn optional.
  • Gibst du ein Dictionary oder eine Liste zurück, macht FastAPI automatisch JSON daraus.
Woher kommt ein Funktionsparameter? Erkennung Beispiel
Pfad Name steht in { } im Pfad @app.get('/kunden/{kunden_id}') mit kunden_id: int
Abfrageparameter Alles andere mit einfachem Typ q: str = '' bedeutet ?q=...
Formularfeld Standardwert Form(...) name: str = Form(...)
JSON-Body Typ ist eine Pydantic-Klasse kunde: KundeNeu
Rohe Anfrage Typ ist Request request: Request

FastAPI wandelt Werte in den angegebenen Typ um und prüft sie. Bei kunden_id: int führt /kunden/abc automatisch zur Antwort 422 mit Fehlertext, ohne dass du etwas programmierst.

Parameter von @app.get(path, ...) und @app.post(...) Bedeutung
path URL-Pfad, mit {name} für Pfadparameter
response_class Art der Antwort, z. B. HTMLResponse für Seiten
status_code Statuscode bei Erfolg, z. B. 201
tags, summary Beschriftung in der automatischen Dokumentation

Tipp: Bei Python-Beispielen kannst du auf ▶ Ausprobieren klicken, den Code verändern und direkt ausführen.

← Zurück