{"title":"Scrivere la tua prima applicazione in Django, parte 1","version":"5.2","locale":"it","docname":"intro/tutorial01","url":"/it/5.2/intro/tutorial01/","canonical":"https://djangodocs.dev/it/5.2/intro/tutorial01/","summary":"Impariamo attraverso un esempio. Durante questa guida, ti accompagneremo attraverso la creazione di una semplice applicazione per sondaggi. Consisterà di due parti:…","html":"<h1>Scrivere la tua prima applicazione in Django, parte 1<a class=\"heading-anchor\" href=\"#writing-your-first-django-app-part-1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Impariamo attraverso un esempio.</p>\n<p>Durante questa guida, ti accompagneremo attraverso la creazione di una semplice applicazione per sondaggi.</p>\n<p>Consisterà di due parti:</p>\n<ul class=\"simple\">\n<li><p>Un sito pubblico, che permette agli utenti di visualizzare sondaggi e votarli.</p></li>\n<li><p>Un sito amministrativo che ti permette l’aggiunta, modifica ed eliminazione di sondaggi.</p></li>\n</ul>\n<p>Supponiamo che tu abbia già <a class=\"reference internal\" href=\"/it/5.2/intro/install/\"><span class=\"doc\">Django installato</span></a>. Puoi dire che Django sia installato e quale versione sia eseguendo il seguente comando in un prompt della shell (indicato dal prefisso $):</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>django<span class=\"w\"> </span>--version\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -m django --version\n</code></pre></div></div></div>\n<p>Se Django è installato, dovresti vedere la versione della tua installazione. Se non lo è, riceverai un errore che dice «No module named django».</p>\n<p>Questo tutorial è stato scritto per Django 5.2, che supporta Python 3.10 e successivi. Se la versione di Django è diversa, puoi fare riferimento al tutorial per la tua versione di Django usando il selettore della versione in basso a destra in questa pagina oppure aggiornare Django alla versione più recente. Se stai utilizzando una versione precedente di Python, controlla <a class=\"reference internal\" href=\"/it/5.2/faq/install/#faq-python-version-support\"><span class=\"std std-ref\">Che versione di Python posso usare con Django?</span></a> per trovare una versione compatibile di Django.</p>\n<aside class=\"admonition-where-to-get-help admonition\">\n<p class=\"admonition-title\">Dove trovare aiuto:</p>\n<p>Se hai difficoltà a completare questo tutorial,  per favore vai alla sezione <a class=\"reference internal\" href=\"/it/5.2/faq/help/\"><span class=\"doc\">Getting Help</span></a> delle FAQ.</p>\n</aside>\n<section id=\"creating-a-project\">\n<h2>Creare un progetto<a class=\"heading-anchor\" href=\"#creating-a-project\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Se questa è la prima volta volta che usi Django, dovrai prenderti cura di qualche configurazione iniziale. Specificatamente, dovrai auto-generare del codice che costituisce un <a class=\"reference internal\" href=\"/it/5.2/glossary/#term-project\"><span class=\"xref std std-term\">progetto</span></a> Django – una collezione di settaggi per un’instanza di Django, che include configurazione del database, opzioni specifiche per Django e settaggi specifici per l’applicazione.</p>\n<p>From the command line, <code class=\"docutils literal notranslate\"><span class=\"pre\">cd</span></code> into a directory where you’d like to store your\ncode and create a new directory named <code class=\"docutils literal notranslate\"><span class=\"pre\">djangotutorial</span></code>. (This directory name\ndoesn’t matter to Django; you can rename it to anything you like.)</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-1-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>mkdir<span class=\"w\"> </span>djangotutorial\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-1-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> <span class=\"k\">mkdir</span> djangotutorial\n</code></pre></div></div></div>\n<p>Then, run the following command to bootstrap a new Django project:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-2-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>django-admin<span class=\"w\"> </span>startproject<span class=\"w\"> </span>mysite<span class=\"w\"> </span>djangotutorial\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-2-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> django-admin startproject mysite djangotutorial\n</code></pre></div></div></div>\n<p>This will create a project called <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite</span></code> inside the <code class=\"docutils literal notranslate\"><span class=\"pre\">djangotutorial</span></code>\ndirectory. If it didn’t work, see <a class=\"reference internal\" href=\"/it/5.2/faq/troubleshooting/#troubleshooting-django-admin\"><span class=\"std std-ref\">Problemi nell’esecuzione di django-admin</span></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Nota</p>\n<p>Vorrai evitare di chiamare progetti con lo stesso nome di componenti predefiniti in Python o Django. In particolare, questo significa evitare nomi quali <code class=\"docutils literal notranslate\"><span class=\"pre\">django</span></code> (che confligge con Django stesso) o <code class=\"docutils literal notranslate\"><span class=\"pre\">test</span></code> (che confligge con il pacchetto Python di serie).</p>\n</aside>\n<p>Diamo un’occhiata a cosa <a class=\"reference internal\" href=\"/it/5.2/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">startproject</span></code></a> ha creato:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Text code\"><code>djangotutorial/\n    manage.py\n    mysite/\n        __init__.py\n        settings.py\n        urls.py\n        asgi.py\n        wsgi.py\n</code></pre></div>\n<p>Questi file sono:</p>\n<ul class=\"simple\">\n<li><p><code class=\"file docutils literal notranslate\"><span class=\"pre\">manage.py</span></code>: Una utility da linea di comando che ti permette di interagire con questo progetto in svariate maniere. Puoi leggere tutti i dettagli a proposito di <code class=\"file docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> in in <a class=\"reference internal\" href=\"/it/5.2/ref/django-admin/\"><span class=\"doc\">django-admin and manage.py</span></a>.</p></li>\n<li><p><code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/</span></code>: A directory that is the actual Python package for your\nproject. Its name is the Python package name you’ll need to use to import\nanything inside it (e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite.urls</span></code>).</p></li>\n<li><p><code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/__init__.py</span></code>: Un file vuoto che indica a Python che questa directory dovrebbe essere considerata un pacchetto Python. Se sei un principiante di Python, leggi <a class=\"reference external\" href=\"https://docs.python.org/3/tutorial/modules.html#tut-packages\" title=\"(in Python v3.14)\"><span class=\"xref std std-ref\">ulteriori informazioni sui pacchetti</span></a> nella documentazione ufficiale di Python.</p></li>\n<li><p><code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/settings.py</span></code>: Settaggi/configurazione per questo progetto Django. <a class=\"reference internal\" href=\"/it/5.2/topics/settings/\"><span class=\"doc\">Django settings</span></a> ha tutte le informazioni di cui hai bisogno su come funzionano i settaggi.</p></li>\n<li><p><code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/urls.py</span></code>: Le dichiarazione di URL per questo progetto Django; una «tavola di contenuti» del tuo sito Django. Per saperne di più sulle URLs, leggi <a class=\"reference internal\" href=\"/it/5.2/topics/http/urls/\"><span class=\"doc\">URL dispatcher</span></a>.</p></li>\n<li><p><code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/asgi.py</span></code>: Un punto di ingresso per i server web compatibili con ASGI per servire il tuo progetto. Vedi <a class=\"reference internal\" href=\"/it/5.2/howto/deployment/asgi/\"><span class=\"doc\">Come distribuire con ASGI.</span></a> per maggiori dettagli .</p></li>\n<li><p><code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/wsgi.py</span></code>: Un punto d’ingresso per web server compatibili con WSGI per servire il tuo progetto. Vedi <a class=\"reference internal\" href=\"/it/5.2/howto/deployment/wsgi/\"><span class=\"doc\">Come distribuire con WSGI.</span></a> per maggiori dettagli.</p></li>\n</ul>\n</section>\n<section id=\"the-development-server\">\n<h2>Il server di sviluppo<a class=\"heading-anchor\" href=\"#the-development-server\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Let’s verify your Django project works. Change into the <code class=\"file docutils literal notranslate\"><span class=\"pre\">djangotutorial</span></code>\ndirectory, if you haven’t already, and run the following commands:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-3-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>runserver\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-3-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py runserver\n</code></pre></div></div></div>\n<p>Vedrai il seguente output nella linea di comando:</p>\n<pre class=\"literal-block\">Performing system checks...\n\nSystem check identified no issues (0 silenced).\n\nYou have unapplied migrations; your app may not work properly until they are applied.\nRun 'python manage.py migrate' to apply them.\n\n09 ago 2026 - 15:50:53\nDjango version 5.2, using settings 'mysite.settings'\nStarting development server at <a class=\"reference external\" href=\"http://127.0.0.1:8000/\">http://127.0.0.1:8000/</a>\nQuit the server with CONTROL-C.\n\nWARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.\nFor more information on production servers see: <a class=\"reference external\" href=\"https://docs.djangoproject.com/en/\">https://docs.djangoproject.com/en/</a>5.2/howto/deployment/</pre>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Nota</p>\n<p>Per ora ignora gli avvisi relativi alle migrazione del database non applicate, ci preoccuperemo a breve del database.</p>\n</aside>\n<p>Adesso che il server sta girando, visita <a class=\"reference external\" href=\"http://127.0.0.1:8000/\">http://127.0.0.1:8000/</a> con il tuo browser web. Vedrai una pagina «Congratulations!», con un razzo che sta partendo. Funziona!</p>\n<p>Hai avviato il server di sviluppo Django, un web server leggero scritto puramente in Python. Lo abbiamo incluso con Django in modo che tu possa sviluppare le cose rapidamente, senza dover avere a che fare con la configurazione di un server di produzione – come Apache – finchè non sei pronto per la produzione.</p>\n<p>Adesso è un buon momento per fare un appunto: <strong>non*</strong> usare questo server in nessun ambiente che somigli anche vagamente alla produzione. E” adatto solo allo sviluppo. (Siamo nel business dei web framework, non dei web server).</p>\n<p>(To serve the site on a different port, see the <a class=\"reference internal\" href=\"/it/5.2/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> reference.)</p>\n<aside class=\"admonition-automatic-reloading-of-djadmin-runserver admonition\">\n<p class=\"admonition-title\">Ricaricamento automatico di <a class=\"reference internal\" href=\"/it/5.2/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a></p>\n<p>Quando necessario, il server di sviluppo ricarica automaticamente il codice Python per ogni richiesta. Non c’è bisogno di far ripartire il server per applicare le modifiche al codice. Ciò nonostante, alcune azioni quali l’aggiunta di file non causano un riavvio. In questi casi dovrai quindi riavviare il server.</p>\n</aside>\n</section>\n<section id=\"creating-the-polls-app\">\n<h2>Creazione dell’applicazione Sondaggi<a class=\"heading-anchor\" href=\"#creating-the-polls-app\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ora che il tuo ambiente – un «progetto»  – è impostato, sei pronto per iniziare a lavorare.</p>\n<p>Ogni applicazione che scrivi in Django è composta da un pacchetto Python che segue alcune convenzioni. Django fornisce una utility che genera in automatico la struttura di base delle cartelle di una app, così puoi concentrarti sulla scrittura del codice invece che creare le cartelle.</p>\n<aside class=\"admonition-projects-vs-apps admonition\">\n<p class=\"admonition-title\">Progetti contro applicazioni</p>\n<p>Qual è la differenza tra un progetto ed una app? Una app è una applicazione web che fa qualcosa – per es. un sistema di blog, un database di record pubblici o una piccola app per i sondaggi. Un progetto è una collezione di configurazioni ed app per un particolare sito web. Un progetto può contenere più app. Una app può far parte di più progetti.</p>\n</aside>\n<p>Your apps can live anywhere in your <a class=\"reference external\" href=\"https://docs.python.org/3/tutorial/modules.html#tut-searchpath\" title=\"(in Python v3.14)\"><span class=\"xref std std-ref\">Python path</span></a>. In\nthis tutorial, we’ll create our poll app inside the <code class=\"docutils literal notranslate\"><span class=\"pre\">djangotutorial</span></code> folder.</p>\n<p>Per creare la tua app, sii sicuro di essere nella stessa cartella di <code class=\"file docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> e scrivi il seguente commando:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-4-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>startapp<span class=\"w\"> </span>polls\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-4-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py startapp polls\n</code></pre></div></div></div>\n<p>Questo creerà la cartella <code class=\"file docutils literal notranslate\"><span class=\"pre\">polls</span></code>, che è strutturata in questo modo:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Text code\"><code>polls/\n    __init__.py\n    admin.py\n    apps.py\n    migrations/\n        __init__.py\n    models.py\n    tests.py\n    views.py\n</code></pre></div>\n<p>La struttura di questa cartella contiene la nostra applicazione sondaggio.</p>\n</section>\n<section id=\"write-your-first-view\">\n<h2>Scrivi la tua prima vista<a class=\"heading-anchor\" href=\"#write-your-first-view\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Scriviamo la nostra prima vista. Apri il file <code class=\"docutils literal notranslate\"><span class=\"pre\">polls/views.py</span></code> e scrivi il seguente codice Python:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">polls/views.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HttpResponse</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">index</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"s2\">&quot;Hello, world. You&#39;re at the polls index.&quot;</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>This is the most basic view possible in Django. To access it in a browser, we\nneed to map it to a URL - and for this we need to define a URL configuration,\nor «URLconf» for short. These URL configurations are defined inside each\nDjango app, and they are Python files named <code class=\"docutils literal notranslate\"><span class=\"pre\">urls.py</span></code>.</p>\n<p>To define a URLconf for the <code class=\"docutils literal notranslate\"><span class=\"pre\">polls</span></code> app, create a file <code class=\"docutils literal notranslate\"><span class=\"pre\">polls/urls.py</span></code>\nwith the following content:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">polls/urls.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;index&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n<p>Your app directory should now look like:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Text code\"><code>polls/\n    __init__.py\n    admin.py\n    apps.py\n    migrations/\n        __init__.py\n    models.py\n    tests.py\n    urls.py\n    views.py\n</code></pre></div>\n<p>The next step is to configure the root URLconf in the <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite</span></code> project to\ninclude the URLconf defined in <code class=\"docutils literal notranslate\"><span class=\"pre\">polls.urls</span></code>. To do this, add an import for\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.urls.include</span></code> in <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite/urls.py</span></code> and insert an\n<a class=\"reference internal\" href=\"/it/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a> in the <code class=\"docutils literal notranslate\"><span class=\"pre\">urlpatterns</span></code> list, so you have:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">mysite/urls.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">include</span><span class=\"p\">,</span> <span class=\"n\">path</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;polls/&quot;</span><span class=\"p\">,</span> <span class=\"n\">include</span><span class=\"p\">(</span><span class=\"s2\">&quot;polls.urls&quot;</span><span class=\"p\">)),</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;admin/&quot;</span><span class=\"p\">,</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n<p>The <a class=\"reference internal\" href=\"/it/5.2/ref/urls/#django.urls.path\" title=\"django.urls.path\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">path()</span></code></a> function expects at least two arguments:\n<code class=\"docutils literal notranslate\"><span class=\"pre\">route</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code>.\nThe <a class=\"reference internal\" href=\"/it/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a> function allows referencing other URLconfs.\nWhenever Django encounters <a class=\"reference internal\" href=\"/it/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a>, it chops off whatever\npart of the URL matched up to that point and sends the remaining string to the\nincluded URLconf for further processing.</p>\n<p>L’idea alla base di <a class=\"reference internal\" href=\"/it/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a> è di semplificare il plug-and-play delle URL. Poiché i sondaggi si trovano nella propria URLconf (<code class=\"docutils literal notranslate\"><span class=\"pre\">polls/urls.py</span></code>), possono essere posizionati dentro «/polls/», o dentro «/fun_polls/», o dentro «/content/polls/», o qualsiasi altro percorso e l’app continuerà a funzionare.</p>\n<aside class=\"admonition-when-to-use-func-django-urls-include admonition\">\n<p class=\"admonition-title\">Quando usare  <a class=\"reference internal\" href=\"/it/5.2/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a></p>\n<p>You should always use <code class=\"docutils literal notranslate\"><span class=\"pre\">include()</span></code> when you include other URL patterns.\nThe only exception is <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.site.urls</span></code>, which is a pre-built URLconf\nprovided by Django for the default admin site.</p>\n</aside>\n<p>Ora hai collegato una vista <code class=\"docutils literal notranslate\"><span class=\"pre\">index</span></code> nella URLconf. Verifica che funzioni con il seguente comando:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-5-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>runserver\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-5-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py runserver\n</code></pre></div></div></div>\n<p>Nel tuo browser vai all’indirizzo <a class=\"reference external\" href=\"http://localhost:8000/polls/\">http://localhost:8000/polls/</a> , e dovresti vedere il testo «<em>Hello, world. You’re at the polls index.</em>», che hai definito nella view  <code class=\"docutils literal notranslate\"><span class=\"pre\">index</span></code>.</p>\n<aside class=\"admonition-page-not-found admonition\">\n<p class=\"admonition-title\">Non hai trovato la pagina?</p>\n<p>Se ottieni una pagina di errore, controlla di stare andando su <a class=\"reference external\" href=\"http://localhost:8000/polls/\">http://localhost:8000/polls/</a> e non <a class=\"reference external\" href=\"http://localhost:8000/\">http://localhost:8000/</a>.</p>\n</aside>\n<p>Quando sei a tuo agio con il flusso base di richiesta e risposta, leggi <a class=\"reference internal\" href=\"/it/5.2/intro/tutorial02/\"><span class=\"doc\">parte 2 di questo tutorial</span></a>  per iniziare a lavorare con il database.</p>\n</section>","rootId":"writing-your-first-django-app-part-1","toc":[{"title":"Creare un progetto","anchor":"creating-a-project","children":[]},{"title":"Il server di sviluppo","anchor":"the-development-server","children":[]},{"title":"Creazione dell’applicazione Sondaggi","anchor":"creating-the-polls-app","children":[]},{"title":"Scrivi la tua prima vista","anchor":"write-your-first-view","children":[]}],"breadcrumbs":[{"docname":"intro/index","title":"Come iniziare","url":"/it/5.2/intro/"}],"prev":{"docname":"intro/install","title":"Guida rapida di installazione","url":"/it/5.2/intro/install/"},"next":{"docname":"intro/tutorial02","title":"Scrivere la tua prima applicazione in Django, parte 2","url":"/it/5.2/intro/tutorial02/"},"formats":{"html":"/it/5.2/intro/tutorial01/","markdown":"/it/5.2/intro/tutorial01.md","json":"/it/5.2/intro/tutorial01.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/intro/tutorial01.txt","official":"https://docs.djangoproject.com/it/5.2/intro/tutorial01/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}