Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

TurboGears: il web framework per Python

Introduzione a TurboGears, framework per lo sviluppo di applicazioni web sfruttando tutti i vantaggi del linguaggio di programmazione Python.
Introduzione a TurboGears, framework per lo sviluppo di applicazioni web sfruttando tutti i vantaggi del linguaggio di programmazione Python.
Link copiato negli appunti

Il panorama di

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

è popolato da una moltitudine di soluzioni per lo sviluppo web.

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

è sicuramente il framework più diffuso, anche grazie alla moltitudine di moduli già pronti che offre,
ma a volte può essere poco performante o macchinoso quando si ha l'esigenza di soluzioni
fortemente personalizzate.

Nel corso degli anni sono nati decine di web framework che hanno
cercato di offrire soluzioni più flessibili, performanti o efficaci di Django in specifici
casi d'uso. Tra questo, uno dei più interessanti è TurboGears, che sarà l'oggetto di questo approfondimento.

Introduzione

La semplicità, la rapidità, ma specialmente la qualità dell'esperienza di sviluppo sono tra i principali obiettivi del team di sviluppo di TurboGears. Questo framework, inoltre, presenta alcune peculiarità che lo rendono particolarmente interessante:

  • Un sistema di dispatch
  • Un template engine
  • Un potente sistema a Widget
  • Supporto integrato a SQLAlchemy e
    [!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

    ad ogni livello del framework.

  • Un Admin autogenerato per gestire tutti i dati della vostra applicazione web.
  • Una struttura a componenti che consente di abilitare, disabilitare o sostituire qualsiasi comportamento del framework.
  • La possibilità di essere usato sia come framework full-stack che come micro-framework.

Il progetto nasce nel 2005 da un'idea di Kevin Dangoor, ed attualmente è giunto alla release 2.4,
compatibile con Python 2.7 e Python >=3.4.

Installazione

Come per la maggior parte delle librerie e framework Python, TurboGears può essere facilmente installato con

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

:

$ pip install tg.devtools

Se non ci sono stati imprevisti, al termine dell'esecuzione dovremmo aver installato TurboGears e tutte le sue dipendenze.

Creazione di una Applicazione Web

Possiamo creare un nuovo progetto TurboGears sfruttando il seguente comando:

$ gearbox quickstart nomeprogetto

Ciò creerà una applicazione Python che potrà poi essere installata con:

$ cd nomeprogetto
$ pip install -e .

e poi avviata con:

$ gearbox serve --reload

A questo punto, connettendosi all'indirizzo http://localhost:8080/ da un browser, verremo accolti dalla nostra applicazione web.

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

Se poi vogliamo anche poterci autenticare http://localhost:8080/admin

$ gearbox setup-app

Per impostazione di default, in modalità sviluppo TurboGears si appoggia ad un database locale

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

.
Quindi non sarà necessario installare o configurare alcun DBMS come

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

o

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

per iniziare a provarlo.

Il framework

Object Dispatch

Per capire il funzionamento delle applicazioni web TurboGears, è importante capire il funzionamento della metodologia con cui le richieste vengono indirizzate ai controller.
La maggior parte dei framework, infatti, utilizza delle regular expression per effettuare il mapping delle URL a metodi. In TurboGears, invece, le richieste vengono distribuite con un sistema chiamato Object Dispatch.

Con questo meccanismo, la radice del sito è considerata l'oggetto RootController, dichiarato nel file root.py all'interno del modulo dei controller.
Ogni richiesta viene divisa sulla base del percorso dell'URL ed a partire da / viene elaborata cercando eventuali figli del RootController che siano in grado di soddisfarla.

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

Se, ad esempio, effettuassimo una richiesta HTTP verso http://localhost:8080/about about RootController
mentre http://localhost:8080/secc/some_where
in quanto instanziato come secc RootController

class RootController(BaseController):
    secc = SecureController()
    @expose('prova.templates.about')
    def about(self):
        """Handle the 'about' page."""
        return dict(page='about')

Questo sistema di dispatch è considerato uno dei principali vantaggi del framework,
in quanto permette di prototipizzare rapidamente applicazioni web
Inoltre, spinge ad una coesione molto ordinata delle funzionalità, permettendo a qualsiasi programmatore che collabori
ad un progetto già avviato di capire senza sforzo dove è il codice che implementa una specifica parte del sito, e modificarlo.

Come in ogni framework

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

, le applicazioni TurboGears sono divise in una serie di modelli, almeno un controller ed una serie di viste. Quando creiamo una nuova web application, ci verranno già forniti un controller, alcune viste ed i modelli necessari a gestire l'autenticazione sul sito.
In questo modo sarà sufficiente adattare l'applicazione autogenerata alle nostre esigenze per ottenere ciò che volevamo.

Validated Template Engine

L'altra peculiarità di TurboGears è di essere l'unico framework a larga difussione ad aver
scelto un template engine in grado di comprendere realmente la struttura dei template.

Questo, nel tempo, ha portato il team del progetto a sviluppare il suo proprio template engine
di nome Kajiki, che è in grado di offrire performance
comparabili a quelle di engine come Jinja, ma che è in grado di offrire delle garanzie in più.

I template sviluppati in Kajiki sono file

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

con degli attributi specifici che
consentono il controllo di flusso:

<html>
    <head><title>$title</title></head>
    <body>
        <h1>$title</h1>
        <ul>
            <li py:for="x in range(repetitions)">
                This is item ${x}
            </li>
        </ul>
    </body>
</html>

Ciò permette a Kajiki di validare i template e riportare errori nell'HTML (come tag malformati,
o non chiusi) e di implementare funzionalità come l'escaping automatico dei dati inseriti e la
traduzione automatica del testo presente nel template.

Inoltre, trattandosi di template XHTML, qualsiasi editor WYSIWYG sarà in grado di visualizzare
i nostri template ed editarli.

Per Approfondire

Chi fosse interessato a sperimentare con TurboGears ed approfondire ulteriormente le sue potenzialità,
può fare riferimento alla

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

ed eventualmente seguire i tutorial disponibili sul sito.

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico

Ti consigliamo anche