Realizzare un’applicazione web in Python

python_logo_without_textsvgQuesto post è il primo di una breve serie di post su come realizzare un’applicazione web in Python. Abbiamo scelto di realizzare questa applicazione utilizzando Python per i notevoli vantaggi che questo (relativamente nuovo) linguaggio mette a nostra disposizione. Python è un linguaggio che può essere utilizzato secondo diversi paradigmi di progammazione: funzionale, imperativo o orientato agli oggetti. E’ un linguaggio portabile, semplice da utilizzare e completamente open-source. Fortemente tipizzato, Python è un linguaggio che viene eseguito runtime, nato per essere un linguaggio di scripting ma che, grazie al grande disponibilità di librerie e alla facilità di scrivere software modulare si presta perfettamente per la realizzazione di applicazioni complesse. Per la nostra applicazione utilizzeremo diversi strumenti, realizzati dalle diverse comunità. Tutti gli strumenti utilizzati sono OpenSource e completamente gratuiti e sono: Pylons,  SQLAlchemy e Elixir, e Mako. Eccoli nel dettaglio una descrizione di questi strumenti, vedremo in post successivo lo start up dell’applicazione:

  • Pylons è il web framework che utilizzeremo, grazie al quale potremo implementare la nostra applicazione secondo il modello di sviluppo MVC in modo veramente semplice. Pylons ci permetterà di lavorare sulla nostra applicazione in locale, senza alcun bisogno di un web server come Apache per lo sviluppo e ci fornirà diversi strumenti veramente comodi per lo sviluppo, che analizzeremo.
  • sqla-logo6SQL Alchemy è un SQL ORM (Object Relational Mapper) con cui saremo in grado di “mappare” il database della nostra applicazione con un serie di classi. Questo ci permetterà di lavorare ad alto livello sui dati e di utilizzare funzionalità avanzate per le query.
  • elixir-logoElixir è definito come uno “strato dichiarativo” di SQL Alchemy. Al di là della pessima traduzione… si tratta di un wrapper di SQL Alchemy che ci permetterà non solo di avere delle classi che rappresentano il database, ma anche l’operazione inversa: creare il database a partire dalle classi stesse.
  • makoLogoFra i diversi template engine, strumenti che permettono di generare il codice HTML, disponibili per Pylons abbiamo scelto Mako. Mako permette di realizzare template veramente flessibili ed implementa, oltre alle consuete strutture di controllo e iterazione, l’ereditarietà dei template: funzionalità molto interessante.

Ora abbiamo tutti gli strumenti. Per gestire il controllo di versione del progetto utilizzeremo, come già discusso nel post relativo al controllo di versione, GIT. Nel prossimo articolo vedremo come si imposta l’ambiente di sviluppo e come iniziare l’implementazione della nostra applicazione.