Vai al contenuto principale

Sviluppo web in Django con Python

Impara le basi dello sviluppo web usando Django per creare applicazioni blog con funzionalità (CRUD) Create, Read, Update, Delete.
Aggiornato 29 set 2026  · 12 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Django è un framework per lo sviluppo web gratuito, open-source e di alto livello, ampiamente utilizzato. Offre molte funzionalità agli sviluppatori "pronte all'uso", così lo sviluppo può essere rapido. Allo stesso tempo, i siti realizzati con Django sono sicuri, scalabili e manutenibili.

Obiettivo

L'obiettivo di questo tutorial è creare un'applicazione blog in cui i contenuti possano essere creati e aggiornati tramite un pannello di amministrazione. I contenuti del blog vengono mostrati nella pagina e possono essere eliminati se necessario. L'applicazione nel suo complesso fornisce funzionalità CRUD (Create, Read, Update, Delete).

Questo tutorial non usa tecnologie FrontEnd come JavaScript, CSS, ecc., ma si concentra sui concetti di base, essenziali in ogni sviluppo web con Django.

Configurazione richiesta

  1. Git Bash: Può essere usato su tutti i sistemi operativi. Tutti i comandi relativi a Django e quelli Unix vengono eseguiti qui. Per scaricare Git Bash: Clicca qui.
  2. Editor di testo: Puoi usare qualsiasi editor, come Sublime Text o Visual Studio Code. Per questo progetto, viene usato Sublime Text.
  3. Python 3: Puoi scaricare l'ultima versione di Python da Download Python.

Nota: Seguire questo tutorial è semplice se conosci le basi di Python e sai cosa sono cicli, funzioni, classi, ecc., e hai un po' di dimestichezza con bash o la riga di comando.

Ambiente virtuale

Un ambiente virtuale gestisce le dipendenze dei progetti in Python. Funziona come un contenitore autonomo o un ambiente isolato in cui sono installati tutti i pacchetti Python e le versioni richieste per uno specifico progetto. Poiché escono nuove versioni di Python, Django o altri pacchetti, grazie a un ambiente virtuale puoi lavorare con versioni precedenti specifiche del tuo progetto. In sintesi, puoi avviare un progetto indipendente con Django versione 2.0, mentre su lo stesso computer puoi iniziarne un altro indipendente con Django versione 3.0.

Nota: Esistono molti modi per creare un ambiente virtuale, ma qui ne mostriamo uno solo.

Passaggi per creare un ambiente virtuale

  1. Puoi creare una nuova directory chiamata 'project-blog' usando il comando 'mkdir' sul Desktop.
  2. Cambia directory in 'project-blog' usando il comando 'cd'.
    Steps to Create a Virtual Environment

  3. L'ambiente virtuale si crea usando 'python -m venv env', dove env è il nostro ambiente virtuale, visibile con il comando 'ls'.
    Steps to Create a Virtual Environment

  4. Per attivare l'ambiente virtuale: L'ambiente virtuale si attiva usando il comando 'source', abilitando la cartella 'Scripts'.
    Steps to Create a Virtual Environment
    Se hai attivato correttamente l'ambiente, vedrai 'env' tra parentesi.

  5. Installare Django: Puoi usare 'pip install django' per installare Django nel tuo ambiente virtuale.
    Steps to Create a Virtual Environment

Nota: Gli utenti Linux e Mac devono usare specificamente 'python3' nel comando perché la versione 2 di Python è già preinstallata sul computer. Inoltre, è preferibile usare la versione 3, dato che Python non supporta più la versione 2 dal 2020.

Creare un progetto Django

  1. Il primo passo è creare il progetto usando il comando 'django-admin startproject project_name', dove 'project_name' nel tuo caso è 'django_blog'. Inoltre, verranno generati molti file all'interno del nuovo progetto: puoi approfondirli nella documentazione di Django se necessario.
    Creating a Django Project
  2. Cambia directory nel progetto appena creato usando 'cd' e visualizza i file creati con 'ls'.
    Creating a Django Project
  3. Puoi avviare il progetto con 'python manage.py runserver'.
    Creating a Django Project
  4. Visualizza il progetto nel tuo browser preferito (Google Chrome, Mozilla Firefox, ecc.). Vai nel browser e digita 'localhost:8000' o '127.0.0.1:8000' nella barra degli indirizzi, come mostrato sotto.
    Creating a Django Project
    Nota: Per vedere la stessa pagina mostrata qui sopra, il server nel bash deve essere in esecuzione in background. Puoi fermarlo manualmente quando vuoi con 'Ctr+C' su Windows/Linux e 'Cmd+C' su Mac.

Avviare il nuovo progetto Django

Per creare un nuovo progetto in Django, il processo è sempre in due passaggi, come mostrato sotto.

  1. Per prima cosa crea un'app usando il comando 'python manage.py startapp app_name', dove app_name nel tuo caso è 'blog'. In Django un singolo progetto può avere molte app, e ogni app fornisce una singola funzionalità specifica al progetto.
    Starting the New Project
  2. Il secondo passo è far sapere al progetto della nuova app creando una modifica alla sezione INSTALLED_APP in 'django_blog/settings.py'.
    Starting the New Project

Modifiche ai nostri Model

Django usa 'SQLite' come database predefinito: è leggero e adatto a progetti piccoli, quindi va bene per questo tutorial. Usa un 'Object Relational Mapper (ORM)' che rende molto semplice lavorare con il database. Non scrivi il codice SQL direttamente: le tabelle vengono create con l'aiuto della parola chiave 'class' in 'models.py'.

Dentro 'blog/models.py' devi creare un nuovo model chiamato 'Post'. È una classe che diventerà poi una tabella nel database, e al momento eredita da 'models.Model'. Come in un blog standard, un certo 'Post' contiene un titolo, che sarà un campo CharField. È una colonna testuale e accetta l'argomento obbligatorio 'max_length', che nel tuo caso è 50. C'è anche un altro campo chiamato 'content', di tipo TextField, che contiene il testo dettagliato del 'Post', come in un blog standard. È definito il metodo con doppio underscore ('str') che sovrascrive il campo 'title' e restituisce il valore effettivo di 'title' invece di un oggetto.
Changing in our Models

Creare le migrazioni

'python manage.py makemigrations' è il primo passo: legge 'models.py' dopo la sua creazione. Crea una nuova cartella chiamata 'migrations' in cui c'è un file '0001_initial.py', portabile tra database.
Changing in our Models

Applicare le migrazioni al database

Questo è il secondo passo, in cui 'python manage.py migrate' legge la cartella 'migrations' appena creata e crea il database; inoltre, lo aggiorna quando c'è un cambiamento nel model.
Changing in our Models

Registrare nel pannello di amministrazione

Vai su 'blog/admin.py' e importa il model chiamato 'Post' usando 'from .models import Post'. Per registrare i model nell'admin, usa il comando 'admin.site.register(Post)'.


Changing in our Models

Creare un SuperUser e visualizzare nel pannello di amministrazione

Devi creare un SuperUser prima di accedere al pannello 'admin'. Per farlo, usa 'winpty python manage.py createsuperuser'.
Changing in our Models
Nota: winpty è un comando specifico di bash usato per comunicare con i programmi della console di Windows.

Esegui il server in background in bash con il comando python manage.py runserver. Vai nel browser e digita quanto segue nella barra degli indirizzi.

Compila poi i tuoi dati, cioè nome utente e password creati in precedenza:
Changing in our Models
Visualizza quindi il pannello admin con il nostro model 'Post' appena creato.
Changing in our Models
Modifica il contenuto del 'Post' facendo clic sul pulsante 'Add'. Compila le informazioni e fai clic su 'Save'.
Changing in our Models

Modifiche a views e URL

Vai su 'blog/views.py' e applica le modifiche mostrate sotto. Aggiungi la funzione 'blog_list', che accetta la richiesta. Viene eseguita una query che recupera tutti gli oggetti creati con 'Post.objects.all()' e li salva in post. Viene creato un nuovo dizionario 'context' dove l'oggetto può essere passato come chiave e recuperato nel template 'blog-list.html', il tutto restituendo la risposta con render.
Changing in views and urls
Crea un nuovo file chiamato 'urls.py' in 'django_blog/blog' e aggiungi le seguenti modifiche. C'è un import relativo della view 'blog_list' e anche 'urlpatterns', che è un elenco di percorsi a pagine specifiche del sito. Al momento, il b'path contiene la stringa vuota e il nome della view.
Changing in views and urls
Spostati su 'django_blog/urls.py', importa include e modifica 'urlpatterns'. Poi aggiungi il percorso agli URL della tua app tramite include. Inoltre, quando gli utenti vanno su 'posts/', vengono indirizzati ai nostri 'blog.urls'.

Creare e modificare i template

Creiamo una cartella templates, che in genere contiene i file 'HTML' e usa un proprio linguaggio di templating chiamato 'Jinja2'. La cartella deve chiamarsi 'templates/blog/blog_list.html', secondo la convenzione.
Making and Changing the Templates
Qui sotto vedi la sintassi relativa all''HyperText Markup Language (HTML), con 'h1' per il titolo grande e una lista non ordinata (ul) con elementi li. Inoltre, è usata la sintassi del ciclo 'for' relativa a 'Jinja 2', dove l'oggetto 'blog_list' passato come chiave da 'blog/views.py' viene iterato con ciascun elemento chiamato 'list'.
Making and Changing the Templates
Visualizza il 'title' chiamato 'First Post' nella pagina web.
Making and Changing the Templates
Aggiungiamo un'altra informazione dal pannello admin come sopra e chiamiamo il titolo del secondo post title 'Second Post'.
Making and Changing the Templates
Dopo aver aggiunto l'informazione e ricaricato la homepage, i dati verranno aggiornati.
Making and Changing the Templates

Dettagli per ogni singolo post

Creerai una pagina per ogni post che contenga il titolo e il suo contenuto. L'URL sarà "localhost:8000/posts/'id'", dove id indica il numero univoco o la chiave primaria associata a ciascun 'Post', assegnata da Django.
Creiamo una funzione 'blog_detail' in 'blog/view.py' , che accetta id come parametro. Viene inoltre eseguita una query per ottenere solo lo specifico id e salvarlo in 'each_post'. Come sopra, le informazioni necessarie vengono passate come context a 'blog_detail.html'.
Details for Each Individual post
L'URL in 'blog/urls.py' è modificato: il path contiene '<id>', che accetta l'id univoco in forma intera. Supponiamo che l'utente arrivi su 'posts/' e veda tutti i post; se va su 'posts/1', vede solo le informazioni relative al primo post creato.
Details for Each Individual post
Creiamo un nuovo file, 'blog/blog_detail.html', e apportiamo le seguenti modifiche. Poiché blog_detail è passato come context, 'title' e 'content' sono accessibili con la notazione a punti.
Details for Each Individual post
Vai all'URL nel tuo browser e digita quanto sopra per ottenere i singoli post. Poiché l'id per la prima informazione creata è '1', la seconda sarà '2' e così via per le nuove informazioni.
Details for Each Individual post

Eliminare il post

Definiamo blog_delete, che accetta la richiesta e l'id. Viene anche eseguita una query in cui 'Post.objects.get(id=id)' ottiene l'oggetto con id univoco e lo salva in each_post. Subito dopo viene chiamato 'each_post.delete()' per eliminare il 'Post'. Infine si importa HttpResponseRedirect dal modulo 'django.http' per reindirizzare la pagina a '/posts/'.
Deleting the Post
. In 'urls.py' importa 'blog_delete' e imposta il path su '<id>/delete', dove l'id seguito da delete alla fine rimuoverà quell'oggetto o informazione specifica.
Deleting the Post
Eliminiamo il nostro post digitando quanto segue in 'urls.py'.
Deleting the Post
Infine, la pagina viene reindirizzata a '/posts' quando viene chiamato 'posts/1/delete/', considerando che in homepage esiste un solo post.
Deleting the Post

Conclusione

Congratulazioni per aver terminato il tutorial! Hai imparato le basi dello sviluppo web con Django e la funzionalità CRUD. Per maggiori dettagli su un argomento specifico, vai alla documentazione di Django.

Riferimenti:

Domande frequenti su sviluppo web in Django con Python

Che cos'è Django?

Django è un framework web gratuito e open-source scritto in Python che segue il pattern architetturale model-template-view. È progettato per aiutare gli sviluppatori a portare le applicazioni dall'idea al rilascio nel minor tempo possibile.

Quali sono alcune funzionalità di Django?

Alcune funzionalità di Django includono un design leggero e modulare, un potente ORM (Object-Relational Mapper) che semplifica le interazioni con il database e il supporto integrato per attività comuni dello sviluppo web, come autenticazione e gestione degli utenti, gestione dei form e amministrazione dei contenuti.

Come inizio a usare Django?

Per iniziare con Django, devi installare Python e la libreria Django sulla tua macchina. Puoi poi creare un nuovo progetto Django usando il comando django-admin startproject e iniziare a costruire la tua applicazione sfruttando le funzionalità e gli strumenti integrati di Django.

Come creo un database in Django?

Django usa di default il motore di database SQLite, incluso in Python. Puoi creare un nuovo database definendo i model nella tua app Django ed eseguendo il comando migrate. Questo creerà le tabelle necessarie nel database per salvare i dati dei tuoi model.

Come creo view e template in Django?

In Django, le view sono funzioni che gestiscono le richieste HTTP e restituiscono risposte HTTP. Puoi creare view definendo funzioni nella tua app Django che accettano una richiesta e restituiscono una risposta. I template sono file HTML che contengono segnaposto per contenuti dinamici. Puoi usare il linguaggio dei template di Django per inserire contenuti dinamici nei template e renderizzarli nelle tue view.

Come faccio il deploy di un'applicazione Django?

Ci sono diversi modi per distribuire un'applicazione Django, a seconda delle tue esigenze e preferenze di hosting. Alcune opzioni comuni includono il deploy su una piattaforma cloud come Heroku o AWS, l'uso di un web server come Apache o Nginx, o l'uso di un servizio di hosting come PythonAnywhere o DigitalOcean.

Argomenti
Python

Corsi di Python

Corso

Introduzione a Python

4 ore
7.1M
Impara le basi dell’analisi dei dati con Python in sole 4 ore. Questo corso online ti introduce all’interfaccia di Python e ai pacchetti più usati.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro