Introduzione al web framework Django e Primo Progetto

Pubblicato da Michele Saba

Prima di iniziare...

Se stai leggendo queste righe è ragionevole assumere che tu intenda imparare Django, giusto? Ti interesserà allora sapere che questa lezione è parte del nostro corso Guida Pratica e Completa a Django, Python e Bootstrap. Si tratta del nostro corso professionale più completo, pensato per fornirti conoscenze pratiche spendibili da subito nel mondo dello sviluppo software e dello sviluppo web con Python, Django, Bootstrap, HTML e CSS. Come tutti i nostri corsi professionali anche questo ha un costo... ma pensiamo sia un costo più che ragionevole e adatto, quasi, a tutti. Scopri di più e inizia subito!


Che cos'è Django?

Django è un web framework di alto livello scritto in Python, che consente lo sviluppo di siti web sicuri e scalabili. Considerando la sua grandissima popolarità e il fatto che si tratta di un framework per lo sviluppo web open source, possiamo contare su puntuali e continui aggiornamenti del software, una comunità di sviluppatori fantastica e tanto supporto a livello globale! Il fatto che sia scritto utilizzando Python inoltre le permette una facile integrazione col parco librerie del linguaggio che come abbiamo visto è davvero sconfinato.


Quali sono i punti di forza di Django?

Django porta con sé tantissimi vantaggi che lo rendono uno dei web framework più apprezzati ed utilizzati al mondo. Con Django è possibile fare davvero di tutto, e molto rapidamente. Tra questi è suoi punti di forza è importante citare:

Completezza

Seguendo la filosofia “batterie incluse”, il framework mette a disposizione degli sviluppatori tantissime componenti pronte all'uso, il che permette di concentrarci sullo sviluppo software “senza dover reinventare la ruota“.

Sicurezza

Django è stato concepito con un forte accento sulla sicurezza e fornisce tanti accorgimenti utili ad evitare gran parte degli errori più comuni. Tra le tante funzionalità che fornisce, è inclusa la protezione automatica per vulnerabilità quali SQL injection, cross-site scripting e cross-site request forgery.

Versatilità

Django può essere utilizzato per la creazione di qualsiasi tipologia di sito, CMS e WIKI, Social Network, siti di E-commerce, news e tanto altro! Può fornire contenuto in tantissimi formati, come HTML, JSON ed RSS. Può inoltre essere esteso da componenti esterne come Django Rest Framework e supporta nativamente database quali MySQL, PostgreSQL e SQLite.

Scalabilità

Per via dell’architettura utilizzata è possibile scalare un sito scritto in Django fino ad accogliere centinaia di milioni di utenti, come ad esempio nel caso di Instagram.

Mantenibilità

Django è stato scritto rispettando il principio di scrittura software DRY (Don’t Repeat Yourself). Questo, abbinato alla sua architettura modulare, ci consente di mantenere il nostro codice robusto e aggiornato nel tempo.

Portabilità

Django è scritto utilizzando Python e ne eredita quindi la natura portabile, permettendoci di utilizzarlo senza problemi in tutti i sistemi operativi più comunemente diffusi.


Il sito ufficiale di Django

Quando ci si approccia studiare un framework potente e vasto come Django è sempre bene salvare tra i preferiti il sito ufficiale in quanto dispone di materiale importantissimo sia per l'acquisizione delle varie conoscenze relative alle framework in sé che in fase di sviluppo.

Nella home page avete la possibilità di iscrivervi alla mailing list della community di Django: ve lo consiglio in quanto arrivano mail veramente interessanti che vi consentono di restare aggiornati sul tema e di trovare anche aiuto quando ne avete bisogno.

Il pezzo forte del sito ufficiale di Django è sicuramente la documentazione: organizzata per sezioni, ciascuna delle quali va ad espandersi ulteriormente.


Creazione di un nuovo Progetto Django

È arrivato finalmente il momento di creare il nostro primo progetto con Django! In questa lezione installeremo il framework all'interno di un ambiente virtuale, creeremo il nostro primo sito e analizzeremo i file principali comuni ad ogni applicazione Django.

Installazione di Django in un ambiente virtuale

Creiamo un nuovo ambiente virtuale nel nostro sistema e installiamo al suo interno Django tramite pip:

python -m venv v_env
cd v_env
source bin/activate
pip install django

Ora che Django è installato possiamo creare il nostro progetto con un comando specifico:

django-admin startproject primo_progetto

Possiamo vedere che è stata creata automaticamente una nuova cartella e diversi file.


I file di un progetto Django

Come abbiamo visto, il comando django-admin startproject genera i file iniziali necessari al funzionamento di un progetto Django; Nello specifico viene generata una sottocartella che prende il nome del nostro progetto, e un file esterno nella cartella principale.

Lo scopo di questi file è il seguente:

__init__.py

Si tratta di un file vuoto che informa Python che la directory va trattata come un package.

settings.py

Si tratta di un file di impostazioni e configurazione del progetto.

urls.py

Si tratta di una tabella dei contenuti del nostro progetto: elenca le risorse accessibili da ciascun URL.

wsgi.py

Si tratta di una Web Server Gateway Interface usata in fase di deployment del progetto, per il momento lo possiamo ignorare.

asgi.py

Stesso discorso di wsgi.py, ma asincrono

manage.py

Si tratta di uno script importantissimo da cui lanciamo svariati comandi amministrativi, soprattutto in fase di sviluppo, come quelli di avvio del server e di creazione delle applicazioni. Lo useremo ampiamente durante il corso.


Come avviare il server di sviluppo

Entriamo nella cartella primo_progetto:

cd primo_progetto

Eseguiamo il seguente comando nel terminale:

python manage.py

Vediamo che ci appare una lista di sottocomandi che ci permettono di specificare delle azioni che vogliamo che vengano eseguite.

Django ci offre un semplice web server che abbiamo installato automaticamente con la creazione di questo progetto col comando startproject: si tratta di un web server piuttosto semplice ma comodissimo in fase di sviluppo perché ci permette di testare le varie modifiche che apportiamo in locale senza dover andare ad installare componenti aggiuntive. Possiamo eseguirlo dando il seguente comando:

python manage.py runserver

Ora il server di sviluppo è avviato: andiamo all’indirizzo 127.0.0.1:8000 copiandolo nel browser.

Django runserver

Se torniamo al nostro terminale vedremo delle informazioni utili legate al comportamento del server, che sta di default girando in localhost sulla porta 8000.

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
Django version 4.1.7, using settings 'primo_progetto.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[30/Mar/2023 15:17:13] "GET / HTTP/1.1" 200 1935
[30/Mar/2023 15:17:13] "GET /static/posts.css HTTP/1.1" 200 114

Abbiamo la data, l'orario, la richiesta che è stata effettuata e l'indirizzo della risorsa.

Noteremo che tra i file del nostro progetto è ora comparso db.sqlite3: si tratta del database di default, ed è stato generato automaticamente da Django per noi. Vedremo come usare il database nel dettaglio più avanti nel corso.

Per sospendere il server di sviluppo è sufficiente usare il comando CTRL+C.


Django è un framework davvero fantastico: completo, sicuro, versatile, scalabile, e molto altro. Questo sito stesso è stato scritto utilizzando Django, così come il backend di Instagram, Quora, Udemy, Mozilla... e davvero tantissimi altri.

C'è chi lo sceglie per la sua potenza, chi per la sua facilità d'uso, chi per il supporto della comunità. Qualsiasi sia il motivo per cui lo stai scegliendo, ben fatto! Come già detto a inizio articolo, abbiamo un corso completo di oltre 23 ore al riguardo. Scopri di più e inizia subito!


Vuoi imparare Python come un/a professionista? Dai uno sguardo ai nostri