Uvicorn ASGI-Server: Leitfaden für FastAPI & Django

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

Uvicorn: Das ultimative Handbuch für den High-Performance-ASGI-Server

Was ist Uvicorn?

Uvicorn ist ein moderner, leichter und extrem leistungsstarker ASGI-Server, der in Python geschrieben wurde. Er wurde speziell für die Ausführung asynchroner Webanwendungen entwickelt und zählt zu den schnellsten Servern für Python-Apps. Dank der Integration von uvloop und httptools bietet Uvicorn eine außergewöhnliche Performance bei der Verarbeitung tausender gleichzeitiger Anfragen.

Der Server unterstützt moderne Webprotokolle wie HTTP/1.1 und WebSocket und kann mit allen ASGI-kompatiblen Frameworks wie FastAPI, Starlette, Django Channels und vielen anderen verwendet werden.

Wichtige Vorteile und Funktionen

Architektonische Stärken

Uvicorn stellt einen bedeutenden Fortschritt im Bereich der Python-Webserver dar:

Asynchronität auf Kernel-Ebene — Die ereignisgesteuerte Architektur ermöglicht die Verarbeitung tausender gleichzeitiger Verbindungen mit minimalem Ressourcenverbrauch.

Höchste Leistung — Durch die Integration von uvloop (schnelle asyncio-Implementierung) und httptools (schneller HTTP-Parser) erreicht Uvicorn eine Performance, die mit Servern in Go oder Node.js vergleichbar ist.

Unterstützung moderner Protokolle — Native Unterstützung für WebSocket und HTTP/1.1, sowie die Möglichkeit, HTTP/2 über zusätzliche Proxys zu nutzen.

Minimale Systemanforderungen — Optimiert für den Einsatz sowohl auf lokalen Entwicklungsmaschinen als auch auf Produktionsservern.

Technische Besonderheiten

Uvicorn implementiert die ASGI 3.0-Spezifikation und ist daher mit einer Vielzahl moderner Python-Frameworks kompatibel. Der Server unterstützt die automatische Erkennung von Codeänderungen während der Entwicklung, einen Multi-Processing-Modus für die Produktion und ein flexibles Konfigurationssystem.

ASGI vs. WSGI: Der entscheidende Unterschied

Das Verständnis der Unterschiede zwischen ASGI und WSGI ist entscheidend für die Wahl des richtigen Servers:

Eigenschaft WSGI (Web Server Gateway Interface) ASGI (Asynchronous Server Gateway Interface)
Ausführungsmodell Synchron, blockierend Asynchron, nicht-blockierend
async/await-Unterstützung Nein Vollständig
WebSocket Nicht unterstützt Native Unterstützung
HTTP/2 Eingeschränkt Vollständig
Hintergrundaufgaben Erfordern separate Prozesse Integrierte Unterstützung
Leistung Durch Thread-Anzahl begrenzt Hoch dank Event-Loop
Beispiel-Server Gunicorn, uWSGI, mod_wsgi Uvicorn, Hypercorn, Daphne
Frameworks Flask, Django (vor 3.0), Bottle FastAPI, Starlette, Django 3.0+, Quart

ASGI ist die evolutionäre Weiterentwicklung von WSGI und wurde speziell für moderne Webanwendungen entwickelt, die hohe Leistung und Echtzeit-Funktionen erfordern.

Installation und erste Schritte

Installation mit pip

pip install uvicorn

Installation mit zusätzlichen Abhängigkeiten

# Für maximale Leistung
pip install uvicorn[standard]

# Enthält uvloop, httptools, websockets, watchgod, python-dotenv

Minimales Beispiel einer Anwendung

Erstellen Sie eine Datei main.py:

fro                    

Empfehlungen