In dieser Liste stellen wir einige vor Python-Webserver Sie können verwenden, um Ihre Python-Anwendungen bereitzustellen.
Wir beginnen damit, die Funktionsweise von Webservern und die Notwendigkeit von Server-Gateway-Schnittstellen zu verstehen. Dann gehen wir die Liste der Python-Webserver zusammen mit ihren herausragenden Merkmalen durch. Die meisten von ihnen sind als verfügbar PyPI-Pakete die Sie installieren und in Ihren Projekten verwenden können.
Lassen Sie uns beginnen!
Was ist ein Webserver?
Beim Entwickeln einer Python-Anwendung verwenden Sie den Entwicklungsserver für Testen Sie Ihre App. Sobald die Entwicklung abgeschlossen ist, müssen Sie Ihre App jedoch auf einem Produktionsserver bereitstellen. Neben mehreren Schichten zusätzlicher Funktionalität sollte ein Webserver die Grundfunktionalität eines haben HTTP-Server.

Der Python-Webserver sollte in der Lage sein, HTTP-Anforderungen (einfache HTTP-Anforderungen wie GET, PUT und POST) von Clients wie Webbrowsern zu verarbeiten und die Antwort zurückzugeben. Diese Antwort kann den HTTP-Statuscode enthalten, der angibt, ob die Anforderung erfolgreich verarbeitet wurde oder nicht. Es kann aus HTML-Webseiten und halbstrukturierten Daten wie z JSON, XML und mehr.
ASGI vs. WSGI: Server-Gateway-Schnittstellen verstehen
Angenommen, Sie haben eine Python-Anwendung in einem Framework Ihrer Wahl entwickelt, sagen wir: Django oder Flasche. Ein herkömmlicher Server ist möglicherweise nicht in der Lage, die an die Python-Anwendung gerichteten Anforderungen zu verstehen und zu verarbeiten. Hier kommen Server-Gateway-Schnittstellen ins Spiel.
Diese Gateway-Schnittstelle kann eine Webserver-Gateway-Schnittstelle sein (WSGI) oder eine Asynchronous Server Gateway Interface (ASGIA). Der Webserver erhält eine Anfrage von einem Client, die er dann an die Server-Gateway-Schnittstelle umleitet. Die Schnittstelle (WSGI/ASGI) interagiert mit der Python-Anwendung über ein exponiertes Callable.

Die Webserver-Gateway-Schnittstelle (WSGI) verarbeitet Anforderungen sequenziell. Wenn mehrere langsame HTTP-Anforderungen vorhanden sind, wirken sich diese auf den Durchsatz aus.
Asynchrone Server-Gateway-Schnittstelle oder ASGI, ist ein Nachfolger von WSGI und hat die zusätzliche Fähigkeit, Anfragen asynchron zu verarbeiten.
Angenommen, eine aktuell bediente Anforderung erfordert einen Datenbanklesevorgang (der möglicherweise lange dauern kann) und wartet auf die Antwort. Wenn die erste Anfrage auf eine Antwort wartet, kann ASGI eine zweite eingehende Anfrage bearbeiten.
Dies steht im Gegensatz zu WSGI, wo die erste Anforderung vor der zweiten verarbeitet werden muss. Daher kann die Verwendung von ASGI zu einem erhöhten Durchsatz führen. ASGI lässt Sie auch verwenden asynchrones Python Funktionen in Ihrer Anwendung.
Python-Webserver
Lassen Sie uns nun die Webserver auflisten, die Sie für Ihre Python-Anwendungen verwenden können. Wir haben auch bestimmte Frameworks aufgenommen, die sofort einsatzbereite Unterstützung für produktionsbereite Server bieten. Dies ist keine vollständige Liste, und die folgenden Webserver-Empfehlungen sind nicht in einer bestimmten Reihenfolge.
Uvicorn
Wenn Sie mit der Anwendungsentwicklung mit FastAPI vertraut sind, werden Sie darauf gestoßen sein Uvicorn, eine Webserver-Implementierung. Uvicorn ist eine ASGI-Serverimplementierung für Python.

So installieren Sie Uvicorn und zugehörige Abhängigkeiten mit pip
Führen Sie den folgenden Befehl aus:
$ pip install uvicorn[standard]
# includes installation of optional and Cython-based dependencies
Die folgenden sind die herausragenden Merkmale von Uvicorn:
- ASGI-Implementierung
- Unterstützung für das Ausführen von Apps aus einer asynchronen Python-Umgebung
- Das Kommandozeilentool mit umfangreicher Optionsliste
- Unterstützt das Ausführen von Anwendungen aus Werksfunktionen
- Stellt Funktionen zur programmgesteuerten Steuerung von Serverinstanzen bereit
Gunicorn
Gunikorn ist ein WSGI-Server für Python-Anwendungen, der für seine fortschrittlichen Prozessverwaltungsfunktionen bekannt ist.

Uvicorn bietet eine Gunicorn-Worker-Klasse, mit der Sie gleichzeitig Leistungs- und Prozessmanagementvorteile erzielen können. Diese Dokumentationsseite enthält Details zu Einsatz von Gunicorn.
Wenn Sie Python 3.5 und höher haben, können Sie Gunicorn mit pip installieren:
$ pip install gunicorn
Das Folgende sind die herausragenden Merkmale von Gunicorn:
- Einfach und schnell
- Kompatibel mit vielen Web-Frameworks
- Unterstützung für die Verwendung mit einem HTTP Proxy-Server
- Fortschrittliches Prozessmanagement
CherryPy
CherryPy ist ein Python-Webframework – genau wie Django, Flask und FastAPI – aber nicht so beliebt wie diese Frameworks. Mit mehreren stabilen Releases gibt es CherryPy seit über einem Jahrzehnt und hat sich zu einem vollwertigen Framework entwickelt. Es hat auch eine unterstützende Entwicklergemeinschaft.

Sie können sich das Interessante ansehen Zen von CherryPy, was die Essenz vermittelt, dass CherryPy ein einfaches und minimalistisches, aber leistungsstarkes Framework ist.
CherryPy ist ein Python-Framework und kein Webserver, aber es steht auf unserer Liste, da es nativ einen Server in Produktionsqualität unterstützt – im Gegensatz zu den meisten anderen Frameworks.
Führen Sie Folgendes aus, um CherryPy zu installieren und loszulegen:
$ pip install CherryPy
Die folgenden sind die herausragenden Merkmale von CherryPy:
- Pythonisches Framework mit objektorientiertem Python; für anfänger gut geeignet
- Unterstützung für einen produktionsbereiten HTTP-Server, Stumpen
- Leichter zu erlernen als andere Web-Frameworks wie Django
- Unterstützung für das Erstellen und Bereitstellen einfacher Web-Apps für Microservices
Daphne
Django ist eines der beliebtesten Python-Webframeworks. Wenn Sie Anwendungen mit Django entwickelt haben, haben Sie wahrscheinlich die verwendet Seidelbast Webserver. Daphne ist eine der ersten ASGI-Serverimplementierungen, die als Referenz für ASGI-Serverimplementierungen verwendet wird.
Daphne ist als PyPI-Paket verfügbar, das Sie mit pip installieren können.
$ pip install daphne
Hier ist ein ausführliches Tutorial, das Sie durch die Erstellung einer produktionsbereiten Full-Stack-Python-Anwendung führt.
Die folgenden sind die herausragenden Merkmale von Daphne:
- Weit verbreitet in Produktionsumgebungen
- Referenz für alle ASGI-Serverimplementierungen
- Unterstützung für HTTP-, HTTP2- und WebSocket-Protokolle
Python Trio
Dieses Trio-Projekt zielt darauf ab, asynchrone E/A-Fähigkeiten in Produktionsqualität bereitzustellen: Unterstützung für parallele E/A und Parallelität. Dieses Projekt hat auch mehrere Web- und HTTP-Python-Bibliotheken.

Sie können die neueste Version von Trio (Juni 2022) von PyPI installieren.
$ pip install trio
Hier ist eine Liste nützlicher Trio-Bibliotheken für die Webprogrammierung mit Python:
hypercorn
: Hypercorn ist ein ASGI-Server, der HTTP unterstütztmuffin
: Muffin ist ein ASGI-Webframework für Pythonstartlette
: Starlette ist ein leichtes ASGI-Frameworktrio-websocket: support for <a href="https://geekflare.com/websocket-servers/">WebSocket server</a> and client</li><li><code>httpx
: HTTP-Client für Python
Twisted Web
Verdreht ist ein Framework für Python-Anwendungen. Dieses ereignisgesteuerte Framework enthält ein Modul für die Webprogrammierung namens twisted.web
.
Sie können Twisted und die zugehörigen Module mit pip installieren:
$ pip install Twisted
Die folgenden sind die herausragenden Merkmale von Twisted:
- Entwicklerfreundliche Funktionen wie Unit-Tests und statische Codeprüfung
twisted.web
bietet einen WSGI-Server und Unterstützung für HTTP-Clients und -Server
AIOHTTP
AIHTTP ist eine Python-Bibliothek, die client- und serverseitige Funktionen über die Client- und Server-APIs bereitstellt.
Hier ist ein nützliches Video, das das erklärt asynchron Programmierfähigkeiten auf der Client-Seite, um Anfragen an APIs erheblich zu beschleunigen.
Die folgenden sind die herausragenden Merkmale von AIOHTTP:
- Unterstützung sowohl für die HTTP-Server- als auch für die Client-Funktionalität
- Unterstützung für die Protokollierung, um das Debuggen zu erleichtern; bietet Protokollierung für einen Client, Server, Web-Sockets und mehr
- Native Unterstützung zum Testen durch das pytest-Plugin zum Testen: pytest-aiohttp, das als PyPI-Paket verfügbar ist
Tornado
Tornado ist ein weiteres Python-Webframework, das asynchrone Netzwerke unterstützt. In den letzten Jahren gab es viele stabile Versionen von Tornado – die neueste Version 6.2 wurde im Juli 2022 veröffentlicht. Derzeit unterstützt Tornado Python 3.7 und höher.

Wie die meisten Pakete in dieser Liste kann Tornado auch mit installiert werden pip
:
$ pip install tornado
Die folgenden sind die herausragenden Merkmale von Tornado:
- Unterstützung für HTTP-Server
tornado.httpserver
und Kunde - Skalierbar und verwendet nicht blockierende Netzwerk-E/A
- Gut geeignet für Anwendungen, die eine Konnektivität für einen wesentlich längeren Zeitraum erfordern
- Dienstprogramme für die Protokollierung, Unit-Test, und mehr
- Nahtlose Integration mit Diensten für die Authentifizierung
Meinheld
Mein Held ist ein WSGI-Server für Python. Es verwendet und baut vorhandene Bibliotheken für die Ereignisbehandlung und HTTP-Anforderungsverarbeitung auf.
Du kannst Meinheld mit pip installieren:
$ pip install meinheld
Einige Features von Meinheld:
- Verwendung
http-parser
Bibliothek zur Verarbeitung eingehender HTTP-Anforderungen - Baut auf dem auf
picoev
Bibliothek für Ereignisbehandlung
Fazit
Ich hoffe, Sie fanden diese Liste von Python-Webservern hilfreich. Probieren Sie sie in Zukunft unbedingt aus Projekte. Wir haben die wichtigsten Funktionen aufgelistet; Um die Abhängigkeiten und ihre Funktionsweise vollständig zu verstehen, müssen Sie sie in Ihren Anwendungen verwenden. 👩🏽💻
Wenn Sie Ihre Python-Kenntnisse verbessern möchten, sollten Sie sich die Bibliothek von Geekflare ansehen Python-Tutorials. Viel Spaß beim Codieren!