Thursday, January 31, 2019

CherryPy - Wikipedia


CherryPy ist ein objektorientiertes Framework für Webanwendungen, das die Programmiersprache Python verwendet. Es ist für die schnelle Entwicklung von Webanwendungen ausgelegt, indem das HTTP-Protokoll umschlossen wird, bleibt jedoch auf einem niedrigen Niveau und bietet nicht viel mehr als das, was in RFC 7231 definiert ist.

CherryPy kann selbst ein Webserver sein oder über eine beliebige WSGI-kompatible Umgebung gestartet werden. Es befasst sich nicht mit Aufgaben wie dem Templating für Ausgabe-Rendering oder Backend-Zugriff. Das Framework ist mit Filtern erweiterbar, die zu definierten Zeitpunkten in der Request / Response-Verarbeitung aufgerufen werden.




Pythonic-Schnittstelle [ edit ]


Eines der Ziele des Projektgründers Remi Delon bestand darin, CherryPy so pythonisch wie möglich zu machen. Dies ermöglicht dem Entwickler, das Framework als normales Python-Modul zu verwenden und (technisch gesehen) zu vergessen, dass die Anwendung für das Web bestimmt ist.

Das allgemeine Hello-World-Programm mit CherryPy 3 würde beispielsweise so aussehen:


 import   cherrypy 

Klasse HelloWorld ( Objekt ): def index index
return "Hallo Welt!"
Index . ausgesetzt = True

Cherrypy . HelloWorld ())

Features [ bearbeiten ]


CherryPy-Implementierungen:


  • Ein HTTP / 1.1-kompatibler WSGI-Webserver mit Webthread-Pool. [4] Normalerweise benötigt CherryPy selbst nur 1-2 ms pro Seite. [5][6]

  • Unterstützung für alle anderen WSGI-fähigen Webserver oder Adapter, einschließlich Apache. IIS, lighttpd, mod_python, FastCGI, SCGI und mod_wsgi.

  • Ein nativer mod_python-Adapter.

  • Mehrere HTTP-Server (z. B. Fähigkeit zum Abhören mehrerer Ports). [7]

  • A plugin system [8] CherryPy plugins hängen an Ereignissen innerhalb des -Servers an - beim Starten des Servers, beim Herunterfahren des Servers, beim Beenden des Servers usw. -, um Code auszuführen, der ausgeführt werden muss, wenn der Server startet oder wird heruntergefahren.

  • Integrierte Tools für Caching, Codierung, Sitzungen, Autorisierung, statische Inhalte und andere. CherryPy tools greifen in Ereignisse im -Anforderungsprozess ein. Immer wenn der CherryPy-Server eine Anforderung erhält, werden bestimmte Schritte zur Bearbeitung dieser Anforderung durchlaufen. Seitenhandler sind nur ein Schritt im Prozess. Die Tools bieten auch eine Syntax- und Konfigurations-API, mit der sie für bestimmte Handler aktiviert und deaktiviert werden können.

  • Ein Konfigurationssystem für Entwickler und Implementierer. [9][10][11] CherryPy-Implementierungen sind vor Ort, auf Anwendungsebene und auf Controller-Ebene über konfigurierbar Python-Wörterbücher, Konfigurationsdateien und offene Dateiobjekte.

  • Eine vollständige Testsuite für die Kernfunktionen und das zugehörige Framework, mit denen CherryPy-Anwendungen getestet werden können. [12]

  • Eingebaute Profilierung seit v2.1, [13] Abdeckung [14] und Testunterstützung.

CherryPy zwingt Sie nicht zur Verwendung einer bestimmten objektrelationalen Mapper- (ORM), Vorlagensprache oder JavaScript-Bibliothek.


Kann mit CherryPy verwendet werden [ edit ]


  • Routen - Eine Python-Reimplementierung des Ruby on Rails-Routensystems zur Zuordnung von URLs zu Controllern / Aktionen und zum Erzeugen von URLs. [15]

Objektrelationale Mappers [ edit ]


Schablonensprachen ]


  • Mako [19] - eine in Python, verwendbare Vorlagenbibliothek mit einem einfachen CherryPy-Tool [20]

  • Cheetah - ein Open Source-Template-Engine und Code-Generierungswerkzeug, geschrieben in Python.

  • CherryTemplate - eine Templatiersprache für CherryPy.

  • Genshi [19659062] - eine mächtige XML-Templatiersprache

  • Jinja - eine allgemeine Templatiersprache. CherryPy verfügt über ein Werkzeug für die Verwendung von Jinja-Vorlagen. [23]

  • Kid - eine einfache Vorlagensprache für XML-basierte Vokabulare, die in Python geschrieben werden. TurboGears 1.x verwendet CherryPy als Server und Kid als Frontend. [24]

Das CherryPy-Wiki hilft [25] bei der Wahl einer Templatiersprache.


Produkte unter Verwendung von CherryPy [ edit ]


Siehe auch [ edit



Referenzen [ edit ]



Externe Links [ bearbeiten ]









No comments:

Post a Comment