Starlette – die Basis für FastAPI

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung

Starlette ist ein modernes, hochperformantes asynchrones Webframework für Python, das als Fundament für das beliebte FastAPI dient. Speziell für die Arbeit mit ASGI (Asynchronous Server Gateway Interface) entwickelt, bietet Starlette Entwicklern leistungsstarke Werkzeuge zur Erstellung schneller und skalierbarer Webanwendungen. In diesem Artikel betrachten wir alle Aspekte der Arbeit mit diesem Framework, seine Möglichkeiten und Vorteile im Detail.

Was ist Starlette?

Geschichte und Projektziele

Starlette wurde von Tom Christie, dem bekannten Entwickler des Django REST Framework, ins Leben gerufen. Das Projekt startete 2018 mit dem Ziel, Entwicklern ein leichtgewichtiges, aber leistungsstarkes Werkzeug für asynchrone Webanwendungen in Python bereitzustellen. Die grundlegende Philosophie von Starlette ist es, ein minimalistisches, aber funktionales Framework anzubieten, das dem Entwickler keine bestimmten Lösungen aufzwingt.

Hauptmerkmale des Frameworks

Starlette zeichnet sich durch eine Reihe von Schlüsselfunktionen aus, die es für die moderne Webentwicklung attraktiv machen:

  • Vollständige ASGI-Unterstützung — gewährleistet maximale Kompatibilität mit modernen asynchronen Servern
  • Native Asynchronität — alle Framework-Komponenten sind mit async/await-Syntax entwickelt
  • Minimalistische Architektur — bietet nur die notwendigen Komponenten, ohne Überfrachtung mit Funktionen
  • Hohe Leistung — zeigt hervorragende Geschwindigkeitswerte bei der Anfrageverarbeitung
  • Modularität — erlaubt die Nutzung nur der benötigten Komponenten
  • Einfaches Testen — enthält integrierte Werkzeuge zum Schreiben von Tests

Wie hängt Starlette mit FastAPI zusammen?

FastAPI-Architektur: Starlette als Grundlage

FastAPI ist auf Starlette aufgebaut und nutzt es als Basisschicht für die Verarbeitung von HTTP-Anfragen, Routing und Middleware. Dadurch kann sich FastAPI auf die Bereitstellung zusätzlicher Funktionen wie automatische Datenvalidierung, Generierung von OpenAPI-Dokumentation und Integration mit Pydantic konzentrieren, während die gesamte Leistung und Flexibilität von Starlette erhalten bleibt.

Warum FastAPI Starlette als Basis wählte

Die Wahl von Starlette als Grundlage für FastAPI ist auf mehrere Faktoren zurückzuführen:

  • Leistung — Starlette erzielt in Leistungsvergleichen hervorragende Ergebnisse
  • ASGI-Kompatibilität — vollständige Unterstützung des modernen Standards für asynchrone Webanwendungen
  • Architekturstabilität — eine gut durchdachte und getestete Codebasis
  • Aktive Community — regelmäßige Updates und Unterstützung durch die Entwickler

Vorteile von Asynchronität und Leistung

ASGI-Unterstützung und asynchrone Aufrufe

ASGI (Asynchronous Server Gateway Interface) ist der neue Standard, der WSGI für asynchrone Anwendungen ablöst. Starlette ist vollständig ASGI-kompatibel, was Folgendes ermöglicht:

  • Verarbeitung tausender gleichzeitiger Verbindungen
  • Effizientes Arbeiten mit WebSocket-Verbindungen
  • Nutzung moderner asynchroner Server wie Uvicorn und Hypercorn
  • Integration mit asynchronen Datenbanken und externen APIs

Leistungsvergleich mit WSGI-Frameworks

Im Gegensatz zu traditionellen WSGI-Frameworks (Flask, Django) bietet Starlette:

  • Nicht-blockierende Ein-/Ausgabe — Anfragen blockieren sich nicht gegenseitig
  • Hoher Durchsatz — Fähigkeit, mehr Anfragen pro Sekunde zu verarbeiten
  • Effiziente Ressourcennutzung — geringerer Speicherverbrauch

Empfehlungen