English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

9 Python-Webserver, die Sie für Ihr nächstes Projekt ausprobieren sollten

Python-Web-Server-1
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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.

Python-Webserver

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.

python-webserver-asgi-wsgi

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.

python-webserver-uvicorn

So installieren Sie Uvicorn und zugehörige Abhängigkeiten mit pipFü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.

Gunicorn-Python-Webserver

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.

kirschartig

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.

YouTube-Video

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ützt
  • muffin: Muffin ist ein ASGI-Webframework für Python
  • startlette: Starlette ist ein leichtes ASGI-Framework
  • trio-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.

YouTube-Video

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!

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder