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.