TurboGears - Übersicht
Was ist Web Framework?
Web Application Framework oder einfach Web Framework stellt eine Sammlung von Bibliotheken und Modulen dar, mit denen ein Webanwendungsentwickler Anwendungen schreiben kann, ohne sich um Details auf niedriger Ebene wie Protokolle, Thread-Verwaltung usw. kümmern zu müssen.
Was ist TurboGears?
TurboGears ist ein in Python geschriebenes Webanwendungsframework. Die neueste Version von TurboGears (Version 2.3.7) wurde 2005 von Kevin Dangoor entwickelt und wird von einer Gruppe von Entwicklern unter der Leitung von Mark Ramm und Florent Aide verwaltet.
TurboGears folgt dem Model-View-Controller-Paradigma wie die meisten modernen Web-Frameworks wie Rails, Django, Struts usw.
Model View Controller
MVC ist ein Software-Entwurfsmuster für die Entwicklung von Webanwendungen. Ein Model View Controller-Muster besteht aus drei Teilen:
Model - Die unterste Ebene des Musters ist für die Pflege der Daten verantwortlich.
View - Dies ist dafür verantwortlich, dem Benutzer alle oder einen Teil der Daten anzuzeigen.
Controller - Software-Code, der die Interaktionen zwischen Modell und Ansicht steuert.
MVC ist beliebt, da es die Anwendungslogik von der Benutzeroberflächenschicht isoliert und die Trennung von Bedenken unterstützt. Hier empfängt der Controller alle Anforderungen für die Anwendung und arbeitet dann mit dem Modell zusammen, um alle von der Ansicht benötigten Daten vorzubereiten. Die Ansicht verwendet dann die vom Controller vorbereiteten Daten, um eine endgültige vorzeigbare Antwort zu generieren. Die MVC-Abstraktion kann wie folgt grafisch dargestellt werden:
Das Model
Das Modell ist für die Verwaltung der Daten der Anwendung verantwortlich. Es reagiert auf die Anforderung aus der Ansicht und auf Anweisungen des Controllers, sich selbst zu aktualisieren.
Die Aussicht
Eine Präsentation von Daten in einem bestimmten Format, ausgelöst durch die Entscheidung eines Controllers, die Daten zu präsentieren. Es handelt sich um skriptbasierte Template-Systeme, die sich sehr einfach in die AJAX-Technologie integrieren lassen.
Der Controller
Der Controller ist dafür verantwortlich, auf Benutzereingaben zu reagieren und Interaktionen mit den Datenmodellobjekten durchzuführen. Der Controller empfängt die Eingabe, validiert die Eingabe und führt dann den Geschäftsvorgang aus, der den Status des Datenmodells ändert.
TurboGears basiert auf einer Reihe von Bibliotheken und Tools. Diese Tools haben zwischen verschiedenen Versionen von TurboGears gewechselt. Die Komponenten der aktuellen Version (Version 2.3.7) sind unten aufgeführt.
SQLAlchemy
Es ist ein Open-Source-SQL-Kit, das Object Relations Mapping (ORM) für Python-Code bereitstellt.
Genshi
Diese Template-Engine wird verwendet, um das Front-End von TG-Anwendungen zu erstellen. Ein Web-Template-System kombiniert eine Vorlage mit einer bestimmten Datenquelle, um dynamische Webseiten zu rendern.
ToscaWidgets
Es ist eine Widget-Bibliothek zum Generieren von HTML-Formularen mit serverseitigen Steuerelementen. Tosca fungiert auch als Middleware für die Verbindung mit JavaScript-Widgets und Toolkits.
Getriebe
Es enthält eine Reihe von Befehlen zum Verwalten von Projekten und Server-TurboGears-Anwendungen. TurboGears-Anwendungen können auf jedem WSGI-kompatiblen Webserver bereitgestellt werden.
Das Web Server Gateway Interface (WSGI) wurde als Standard für die Entwicklung von Python-Webanwendungen übernommen. WSGI ist eine Spezifikation für die universelle Schnittstelle zwischen Webserver und Webanwendungen. Das wsgiref-Paket ist eine Referenzimplementierung von WSGI. Es wird verwendet, um dem Web-TurboGears-Webframework WSGI-Unterstützung hinzuzufügen. Das simple_server-Modul in diesem Paket implementiert einen einfachen HTTP-Server, der WSGI-Anwendungen bedient. Wir werden es verwenden, um Anwendungen zu testen, die in diesem Tutorial entwickelt wurden.