TurboGears - Panoramica
Cos'è Web Framework?
Web Application Framework o semplicemente Web Framework rappresenta una raccolta di librerie e moduli, che consente a uno sviluppatore di applicazioni Web di scrivere applicazioni, senza doversi preoccupare di dettagli di basso livello come protocolli, gestione dei thread, ecc.
Cos'è TurboGears?
TurboGears è un framework per applicazioni web scritto in Python. Creata originariamente da Kevin Dangoor nel 2005, la sua ultima versione TurboGears (ver 2.3.7) è gestita da un gruppo di sviluppatori guidati da Mark Ramm e Florent Aide.
TurboGears segue il paradigma Model-View-Controller così come la maggior parte dei framework web moderni come Rails, Django, Struts, ecc.
Controller vista modello
MVC è un modello di progettazione software per lo sviluppo di applicazioni web. Un pattern Model View Controller è composto da tre parti:
Model - Il livello più basso del pattern è responsabile del mantenimento dei dati.
View - Questo è responsabile della visualizzazione di tutti o una parte dei dati all'utente.
Controller - Codice software che controlla le interazioni tra il Modello e la Vista.
MVC è popolare in quanto isola la logica dell'applicazione dal livello dell'interfaccia utente e supporta la separazione dei problemi. Qui, il Titolare riceve tutte le richieste dell'applicazione e poi collabora con il Modello per preparare i dati necessari alla View. The View utilizza quindi i dati preparati dal Titolare per generare una risposta presentabile finale. L'astrazione MVC può essere rappresentata graficamente come segue:
Il modello
Il Modello è responsabile della gestione dei dati dell'applicazione. Risponde alla richiesta della view e risponde anche alle istruzioni del controller per aggiornarsi.
La vista
Una presentazione dei dati in un formato particolare, innescata dalla decisione di un responsabile del trattamento di presentare i dati. Sono sistemi di creazione di modelli basati su script molto facili da integrare con la tecnologia AJAX.
Il controller
Il controller è responsabile della risposta all'input dell'utente ed esegue le interazioni sugli oggetti del modello di dati. Il Controller riceve l'input, convalida l'input e quindi esegue l'operazione di business che modifica lo stato del modello dati.
TurboGears si basa su una serie di librerie e strumenti. Questi strumenti sono cambiati tra le diverse versioni di TurboGears. I componenti della versione corrente (ver 2.3.7) sono elencati di seguito.
SQLAlchemy
È un kit SQL open source che fornisce ORM (Object Relation Mapping) per il codice Python.
Genshi
Questo motore di modelli viene utilizzato per costruire il front-end delle applicazioni TG. Un sistema di modelli Web combina un modello con una determinata origine dati per eseguire il rendering di pagine Web dinamiche.
ToscaWidgets
È una libreria di widget per la generazione di moduli HTML con controlli lato server. Tosca funge anche da middleware per connettersi con widget e toolkit JavaScript.
Riduttore
Fornisce una serie di comandi per gestire i progetti e le applicazioni TurboGears del server. Le applicazioni TurboGears possono essere distribuite su qualsiasi server Web conforme a WSGI.
La Web Server Gateway Interface (WSGI) è stata adottata come standard per lo sviluppo di applicazioni web Python. WSGI è una specifica per l'interfaccia universale tra server web e applicazioni web. Il pacchetto wsgiref è un'implementazione di riferimento di WSGI. Viene utilizzato per aggiungere il supporto WSGI al framework web Web TurboGears. Il modulo simple_server in questo pacchetto implementa un semplice server HTTP che serve le applicazioni WSGI. Lo useremo per testare le applicazioni sviluppate durante questo tutorial.