Django è un web framwork gratuito e open source specializzato nello sviluppo di applicazioni web scritte in linguaggio Python. Le applicazioni sviluppate con Django seguono la struttura del model-view-controller definita all’interno dell’omonimo pattern architetturale (MVC).

Django è stato creato nel 2003 dai programmatori del Lawrence Journal-World (giornale con sede in Kansas) Adrian Holovaty e Simon Willison che utilizzarono il linguaggio Python per scrivere e mantenere tre distinti siti d’informazione:

  1. The Lawrence Journal-World;
  2. lawrence.com;
  3. KUsports.com.

Nel 2005 Django venne pubblicato sotto licenza BSD, mentre nel 2008 nacque la Django Software Foundation con lo scopo di mantenere Django negli anni futuri.

Molte delle caratteristiche di Django evidenziano come esso sia stato concepito per la gestione di siti internet d’informazione (spesso da parte di una o più figure digiune dal punto di vista informatico). Django non richiede ad esempio lo sviluppo di pagine di backend, o di molte tabelle di database essenziali per il suo funzionamento, queste vengono generate automaticamente dal sistema in fase di installazione o a run-time dopo aver incluso l’applicazione creata nei file di configurazione. L’applicazione per l’amministrazione permette di creare, aggiornare ed eliminare contenuti rappresentati da oggetti tenendo traccia di tutte le operazioni effettuate e fornisce un’interfaccia per la gestione di utenti e gruppi di utenti (inclusa la gestione dei permessi).

Questa guida ha lo scopo di introdurre Django riprendendo e commentando i primi capitoli della guida introduttiva disponibili in lingua inglese sul sito djangoproject.com, portale ufficiale dei progetto Django in cui è possibile reperire molta documentazione. Nel prossimo capitolo ci occuperemo della prima installazione di Django, mentre i capitoli dal terzo all’undici saranno dedicati allo sviluppo di una prima e semplice applicazione.

Requisiti

Questa guida ha dei requisiti fondamentali per la comprensione dei concetti esposti:

  • Tecniche base di programmazione (conoscenza di almeno un linguaggio di programmazione);
  • Programmazione in linguaggio Python;
  • Programmazione in linguaggio SQL (MySQL, pgSQL, o atri);
  • Conoscenza linguaggio HTML e CSS.