{"id":31544,"date":"2025-02-06T18:17:40","date_gmt":"2025-02-06T17:17:40","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=31544"},"modified":"2025-02-06T18:17:42","modified_gmt":"2025-02-06T17:17:42","slug":"techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/","title":{"rendered":"TechPills per tutti: Metti in moto il tuo primo progetto Django"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduzione\"><strong>Introduzione<\/strong><\/h2>\n\n\n\n<p>Benvenuto nella prima guida della rubrica <strong>TechPills per tutti<\/strong>, dove semplifichiamo concetti e strumenti tecnologici per metterti in condizione di sviluppare subito qualcosa di concreto. Oggi esploreremo Django, uno dei framework web pi\u00f9 popolari e potenti nel mondo Python. Alla fine di questo articolo, avrai un progetto Django funzionante, pronto per essere sviluppato ulteriormente o personalizzato.<\/p>\n\n\n\n<p><strong>Obiettivi dell&#8217;articolo:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Spiegare i concetti di base di un ambiente di sviluppo Python.<\/li>\n\n\n\n<li>Guidarti nell\u2019installazione di Django e nella creazione di un primo progetto.<\/li>\n\n\n\n<li>Presentare la struttura di un progetto Django e come avviare il server di sviluppo.<\/li>\n<\/ul>\n\n\n\n<p><strong>Cosa ti serve per iniziare:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Conoscenza base di Python.<\/li>\n\n\n\n<li>Un computer con Python gi\u00e0 installato.<\/li>\n<\/ul>\n\n\n\n<p>Sei pronto? Immergiamoci in Django!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cos-e-django\"><strong>Cos\u2019\u00e8 Django?<\/strong><\/h2>\n\n\n\n<p><a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Django<\/a> \u00e8 un framework web open source scritto in Python, progettato per semplificare e velocizzare lo sviluppo di applicazioni web complesse. Grazie alla sua architettura <strong>MVC<\/strong> (Model-View-Controller) e al principio <strong>DRY<\/strong> (Don\u2019t Repeat Yourself), \u00e8 una delle scelte preferite sia dai principianti che dagli sviluppatori esperti.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-caratteristiche-principali\"><strong>Caratteristiche principali<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Velocit\u00e0 di sviluppo<\/strong>: Grazie a strumenti integrati, puoi costruire prototipi e applicazioni complete in tempi record.<\/li>\n\n\n\n<li><strong>Sicurezza<\/strong>: il framework fissa dei confini e questo aiuta gli sviluppatori a evitare molti errori di sicurezza comuni.<\/li>\n\n\n\n<li><strong>Batteries Included<\/strong>: Include tutto il necessario per creare applicazioni web, come autenticazione, gestione database, e interfacce amministrative.<\/li>\n\n\n\n<li><strong>Grande community<\/strong>: Essendo uno dei framework pi\u00f9 usati, offre una documentazione eccellente e supporto della community.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-introduzione-ai-virtual-environment-una-base-solida-per-il-tuo-progetto-django\"><strong>Introduzione ai Virtual Environment: Una base solida per il tuo progetto Django<\/strong><\/h3>\n\n\n\n<p>Un <strong>ambiente virtuale<\/strong> (<a href=\"https:\/\/docs.python.org\/3\/library\/venv.html\" target=\"_blank\" rel=\"noreferrer noopener\">venv<\/a>) \u00e8 uno strumento fondamentale per isolare le dipendenze di un progetto Python. Ti consente di:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gestire versioni diverse di Python e delle librerie necessarie al progetto.<\/li>\n\n\n\n<li>Evitare conflitti tra le dipendenze di progetti diversi, garantendo che ogni progetto abbia il proprio ecosistema.<\/li>\n<\/ul>\n\n\n\n<p>Con un ambiente virtuale, il tuo progetto Django rimarr\u00e0 indipendente e pi\u00f9 semplice da mantenere.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-caratteristiche-di-un-ambiente-virtuale\"><strong>Caratteristiche di un ambiente virtuale<\/strong><\/h3>\n\n\n\n<p>Un ambiente virtuale ha le seguenti caratteristiche principali:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Contiene<\/strong> un interprete Python specifico, insieme alle librerie e ai binari necessari per supportare un progetto (applicazione o libreria). Questi sono isolati di default da altri ambienti virtuali e dalle librerie Python installate nel sistema operativo.<\/li>\n\n\n\n<li><strong>Si trova in una directory dedicata<\/strong>, convenzionalmente chiamata .venv o venv nella directory del progetto.<\/li>\n\n\n\n<li><strong>Non viene incluso nei sistemi di version control<\/strong> (come Git), poich\u00e9 \u00e8 considerato un ambiente temporaneo.<\/li>\n\n\n\n<li><strong>\u00c8 considerato eliminabile<\/strong>: dovrebbe essere semplice da cancellare e ricreare da zero. Non \u00e8 previsto che tu inserisca codice del progetto all&#8217;interno dell&#8217;ambiente virtuale.<\/li>\n\n\n\n<li><strong>Non \u00e8 spostabile o copiabile<\/strong>: in caso di necessit\u00e0 di spostare il progetto, si ricrea l\u2019ambiente virtuale nella nuova posizione.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-preparazione-dell-ambiente\"><strong>Preparazione dell\u2019ambiente<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-installazione-di-python\"><strong>Installazione di Python<\/strong><\/h3>\n\n\n\n<p>Assicurati di avere Python 3.10 o superiore installato sul tuo sistema. Puoi verificarlo con il comando:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">python --version<\/code><\/span><\/pre>\n\n\n<p>oppure<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">python3 --version<\/code><\/span><\/pre>\n\n\n<p>Se Python non \u00e8 installato, scaricalo dal sito ufficiale:<a href=\"https:\/\/www.python.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"> https:\/\/www.python.org<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-creazione-e-attivazione-di-un-ambiente-virtuale\"><strong>Creazione e attivazione di un ambiente virtuale<\/strong><\/h3>\n\n\n\n<p>Crea la directory per i tuoi progetti dove preferisci, entraci all\u2019interno e crea il tuo ambiente virtuale, seguendo questi passaggi:<\/p>\n\n\n\n<p><strong>Crea un virtual environment:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">python3 -m venv venv<\/code><\/span><\/pre>\n\n\n<ol class=\"wp-block-list\">\n<li>&nbsp;Questo creer\u00e0 una directory chiamata venv nel tuo progetto.<br><\/li>\n\n\n\n<li><strong>Attiva l\u2019ambiente virtuale:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Mac\/Linux<\/strong>: <code>source venv\/bin\/activate<\/code><\/li>\n\n\n\n<li><strong>Windows<\/strong>: <code>venv\\Scripts\\activate<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Conferma l\u2019attivazione:<\/strong> Quando l\u2019ambiente virtuale \u00e8 attivo, dovresti vedere il prefisso (venv) prima del prompt della shell.<br><\/li>\n<\/ol>\n\n\n\n<p><strong>Per disattivare l\u2019ambiente virtuale: <\/strong><code>deactivate<\/code><\/p>\n\n\n\n<p>Installeremo Django ed altri eventuali pacchetti attraverso pip<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-cos-e-pip\">Cos\u2019\u00e8 pip?<\/h4>\n\n\n\n<p><strong>pip<\/strong> \u00e8 il gestore di pacchetti ufficiale per Python. Ti consente di installare, aggiornare e gestire librerie e pacchetti Python che possono essere utilizzati nei tuoi progetti.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-caratteristiche-principali-di-pip\"><strong>Caratteristiche principali di pip<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Installazione di pacchetti:<\/strong> Puoi installare librerie da<a href=\"https:\/\/pypi.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"> PyPI<\/a>, il repository ufficiale di pacchetti Python.<br><code>pip install nome_pacchetto<\/code><\/li>\n\n\n\n<li><strong>Aggiornamento di pacchetti:<\/strong> Puoi mantenere le tue librerie aggiornate con:<br><code>pip install --upgrade nome_pacchetto<\/code><\/li>\n\n\n\n<li><strong>Disinstallazione di pacchetti:<\/strong> Puoi rimuovere un pacchetto non pi\u00f9 necessario con:<br><code>pip uninstall nome_pacchetto<\/code><\/li>\n\n\n\n<li><strong>Elenco dei pacchetti installati:<\/strong> Puoi vedere tutti i pacchetti attualmente installati nel tuo ambiente con:<br><code>pip list<\/code><\/li>\n\n\n\n<li><strong>Congelamento delle dipendenze:<\/strong> Con il comando pip freeze, puoi salvare tutte le librerie installate e le loro versioni in un file requirements.txt, utile per condividere o replicare l\u2019ambiente di sviluppo.<br><code>pip freeze &gt; requirements.txt<\/code><\/li>\n\n\n\n<li>Installazione di dipendenze da pip: Puoi installare tutte le dipendenze direttamente dal file <code>requirements.txt<\/code> tramite<br><code>pip install -r requirements.txt<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-perche-utilizzare-pip\"><strong>Perch\u00e9 utilizzare pip?<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Facilit\u00e0 d\u2019uso:<\/strong> Pip \u00e8 semplice e diretto da usare, ideale sia per principianti che per esperti.<\/li>\n\n\n\n<li><strong>Ampia compatibilit\u00e0:<\/strong> \u00c8 compatibile con la maggior parte dei pacchetti Python.<\/li>\n\n\n\n<li><strong>Essenziale per gli ambienti virtuali:<\/strong> Con pip, puoi gestire librerie specifiche per un progetto senza influenzare il sistema globale.<\/li>\n<\/ul>\n\n\n\n<p>Con pip, la gestione delle dipendenze diventa semplice e organizzata, garantendo che il tuo progetto abbia sempre accesso ai pacchetti necessari.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-installazione-di-django\"><strong>Installazione di Django<\/strong><\/h3>\n\n\n\n<p>Con l\u2019ambiente virtuale attivo, installa Django usando <code>pip<\/code>:<\/p>\n\n\n<div class=\"gb-container gb-container-e5d23804\">\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pip install django<\/code><\/span><\/pre>\n<\/div>\n\n\n<p>Verifica l\u2019installazione:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">python3 -m django --version<\/code><\/span><\/pre>\n\n\n<p>oppure<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">django-admin --version<\/code><\/span><\/pre>\n\n\n<p>Se tutto \u00e8 andato a buon fine, vedrai la versione di Django installata.<\/p>\n\n\n\n<pre class=\"wp-block-verse\"><em>Nota<\/em>: Assicurati di installare Django all\u2019interno del virtual environment, altrimenti non sar\u00e0 disponibile per il progetto corrente.<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creare-il-primo-progetto-django\"><strong>Creare il primo progetto Django<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-generazione-del-progetto\"><strong>Generazione del progetto<\/strong><\/h3>\n\n\n\n<p>Usa il comando django-admin per creare un nuovo progetto:<\/p>\n\n\n\n<p><code>django-admin startproject nome_progetto<\/code><\/p>\n\n\n\n<p>Questo comando genera una struttura di base per il tuo progetto, organizzata come segue:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><pre class=\"wp-block-code\"><span><code class=\"hljs\">nome_progetto\/\n\n\u251c\u2500\u2500 nome_progetto\/\n\n\u2502 \u00a0 \u251c\u2500\u2500 __init__.py\n\n\u2502 \u00a0 \u251c\u2500\u2500 asgi.py\n\n\u2502 \u00a0 \u251c\u2500\u2500 settings.py\n\n\u2502 \u00a0 \u251c\u2500\u2500 urls.py\n\n\u2502 \u00a0 \u2514\u2500\u2500 wsgi.py\n\n\u2514\u2500\u2500 manage.py<\/code><\/span><\/pre><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Creare un&#8217;app Django<\/strong><\/h3>\n\n\n\n<p>Django utilizza un&#8217;architettura basata su app, dove ogni funzionalit\u00e0 o componente pu\u00f2 essere sviluppato come modulo separato. Creiamo una nuova app nel nostro progetto.<\/p>\n\n\n\n<p><strong>Generazione dell&#8217;app<\/strong> Esegui il seguente comando nella directory del tuo progetto:<br><code>python manage.py startapp nome_app<\/code><\/p>\n\n\n\n<p><strong>Struttura dell&#8217;app generata<\/strong> Il comando precedente creer\u00e0 una nuova directory <code>nome_app\/<\/code> con la seguente struttura:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">nome_app\/\n\u251c\u2500\u2500 admin.py\n\u251c\u2500\u2500 apps.py\n\u251c\u2500\u2500 init.py\n\u251c\u2500\u2500 migrations\/\n\u2502 \u2514\u2500\u2500 init.py\n\u251c\u2500\u2500 models.py\n\u251c\u2500\u2500 tests.py\n\u2514\u2500\u2500 views.py<\/code><\/span><\/pre>\n\n\n<p><strong>Registrazione dell&#8217;app<\/strong> Per rendere l&#8217;app riconosciuta dal progetto Django, apri il file <code>settings.py<\/code> nella directory del progetto e aggiungi il nome dell&#8217;app alla lista <code>INSTALLED_APPS<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">INSTALLED_APPS = &#91;\n    \u2026\n    <span class=\"hljs-string\">'nome_app'<\/span>,\n]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-struttura-dei-file-principali\"><strong>Struttura dei file principali<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>manage.py<\/strong>: Ti permette di avviare il server di sviluppo, gestire migrazioni e svolgere altre operazioni amministrative per il tuo progetto.<\/li>\n\n\n\n<li><strong>settings.py<\/strong>: Contiene le configurazioni principali (database, app installate, fuso orario, ecc.) che determinano il funzionamento dell\u2019applicazione.<\/li>\n\n\n\n<li><strong>urls.py<\/strong>: Mappa i vari indirizzi (URL) del sito alle loro relative viste (view) o funzioni, definendo la \u201cstruttura\u201d di navigazione dell\u2019app.<\/li>\n\n\n\n<li><strong>asgi.py<\/strong><strong> e <\/strong><strong>wsgi.py<\/strong>: Sono i punti di ingresso per eseguire l\u2019app in ambienti di produzione:\n<ol class=\"wp-block-list\">\n<li>WSGI \u00e8 il protocollo \u201cstandard\u201d supportato dalla maggior parte dei server.<\/li>\n\n\n\n<li>ASGI permette di gestire app asincrone, utile per funzionalit\u00e0 in tempo reale.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-avvio-del-server-di-sviluppo\"><strong>Avvio del server di sviluppo<\/strong><\/h2>\n\n\n\n<p>Con la struttura del progetto pronta, bisogna prima fare le migrazioni con:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">manage<\/span><span class=\"hljs-selector-class\">.py<\/span> <span class=\"hljs-selector-tag\">migrate<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>puoi avviare il server di sviluppo con:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">manage<\/span><span class=\"hljs-selector-class\">.py<\/span> <span class=\"hljs-selector-tag\">runserver<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Vedrai un messaggio come questo:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Starting development server at http:<span class=\"hljs-comment\">\/\/127.0.0.1:8000\/<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-visualizza-la-tua-applicazione\"><strong>Visualizza la tua applicazione<\/strong><\/h3>\n\n\n\n<p>Apri un browser e visita<a href=\"http:\/\/127.0.0.1:8000\/\"> http:\/\/127.0.0.1:8000<\/a>. Se tutto funziona, vedrai la pagina predefinita di Django con il messaggio: <strong>\u201cThe install worked successfully! Congratulations!\u201d<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/FHKGsYM\/Screenshot-2025-01-20-alle-19-27-40.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><em>Consiglio<\/em>: Se la porta 8000 \u00e8 gi\u00e0 occupata, puoi cambiarla con:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">manage<\/span><span class=\"hljs-selector-class\">.py<\/span> <span class=\"hljs-selector-tag\">runserver<\/span> 8080<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-personalizzazione-aggiungere-una-view-e-un-url\"><strong>Personalizzazione: Aggiungere una View e un URL<\/strong><\/h2>\n\n\n\n<p>Per rendere la tua applicazione pi\u00f9 interessante, aggiungiamo una view personalizzata. Apri il file <code>views.py<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-esempio-hello-world\"><strong>Esempio: &#8220;Hello, World!&#8221;<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">from<\/span> django.http <span class=\"hljs-keyword\">import<\/span> HttpResponse\n\ndef hello_world(request):\n    <span class=\"hljs-keyword\">return<\/span> HttpResponse(<span class=\"hljs-string\">\"Ciao dal tuo primo progetto Django!\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Poi, modifica il file <code>urls.py<\/code> della directory del progetto per includere le URL della tua app:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">from<\/span> django.urls <span class=\"hljs-keyword\">import<\/span> path, include\n\nurlpatterns = &#91;\n    path(<span class=\"hljs-string\">''<\/span>, include(<span class=\"hljs-string\">'nome_app.urls'<\/span>)),\n]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Crea un file <code>urls.py<\/code> nella directory della tua app con il seguente contenuto:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">from<\/span> django.urls <span class=\"hljs-keyword\">import<\/span> path\n<span class=\"hljs-keyword\">from<\/span> . import views\n\nurlpatterns = &#91;\n    path(<span class=\"hljs-string\">''<\/span>, views.hello_world, name=<span class=\"hljs-string\">'home'<\/span>),\n]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Ricarica la pagina nel browser: ora vedrai il messaggio personalizzato <strong>&#8220;Ciao dal tuo primo progetto Django!&#8221;<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/85r97VC\/Screenshot-2025-01-24-alle-20-54-28.png\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusioni-e-prossimi-passi\"><strong>Conclusioni e prossimi passi<\/strong><\/h2>\n\n\n\n<p>In questa guida abbiamo coperto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Creazione di un ambiente virtuale.<\/li>\n\n\n\n<li>Installazione di Django.<\/li>\n\n\n\n<li>Generazione del primo progetto.<\/li>\n\n\n\n<li>Avvio del server e creazione di una view personalizzata.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-tips-amp-tricks\"><strong>Tips &amp; Tricks<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-gestione-delle-dipendenze\"><strong>Gestione delle dipendenze<\/strong><\/h3>\n\n\n\n<p>La gestione delle dipendenze \u00e8 fondamentale per garantire che il tuo progetto sia riproducibile e isolato. Utilizzando un virtual environment, puoi installare librerie specifiche solo per quel progetto.<\/p>\n\n\n\n<p>Per documentare tutte le dipendenze attuali del tuo progetto, salva la lista delle librerie installate in un file chiamato <code>requirements.txt<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">pip<\/span> <span class=\"hljs-selector-tag\">freeze<\/span> &gt; <span class=\"hljs-selector-tag\">requirements<\/span><span class=\"hljs-selector-class\">.txt<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Questo file \u00e8 particolarmente utile nei seguenti scenari:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Condivisione del progetto<\/strong>: Chiunque collabori al tuo progetto potr\u00e0 ricreare facilmente lo stesso ambiente eseguendo:<br><code>pip install -r requirements.txt<\/code><\/li>\n\n\n\n<li><strong>Deployment<\/strong>: In ambienti di produzione, il file requirements.txt garantisce che tutte le librerie necessarie siano installate nella versione corretta.<\/li>\n\n\n\n<li><strong>Backup delle dipendenze<\/strong>: Se devi ricreare l\u2019ambiente virtuale da zero, il file requirements.txt ti consente di reinstallare rapidamente tutte le librerie.<\/li>\n<\/ol>\n\n\n\n<p>Gestire le dipendenze in questo modo evita conflitti e garantisce che il tuo codice funzioni come previsto, indipendentemente dall\u2019ambiente in cui viene eseguito.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-problemi-comuni-e-soluzioni\"><strong>Problemi comuni e soluzioni<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Errore: Porta 8000 gi\u00e0 in uso<\/strong>&nbsp;<\/li>\n<\/ol>\n\n\n\n<p>Soluzione: Cambia porta con <code>python manage.py runserver 8080.<\/code><\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Errore: <\/strong><strong>django-admin<\/strong><strong> non trovato<\/strong>&nbsp;<\/li>\n<\/ol>\n\n\n\n<p>Soluzione: Assicurati che l\u2019ambiente virtuale sia attivo.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h-approfondimenti-avanzati\"><strong>Approfondimenti avanzati<\/strong><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-le-migrazioni-in-django\"><strong>Le migrazioni in Django<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cosa-sono-le-migrazioni\"><strong>Cosa sono le migrazioni?<\/strong><\/h3>\n\n\n\n<p>Le migrazioni sono file che descrivono le modifiche apportate ai tuoi <em>model<\/em> (ovvero le strutture dati che rappresentano le tabelle del database). Django le utilizza per \u201ctrasferire\u201d in modo sicuro le modifiche nel tuo database. Ogni volta che aggiorni i tuoi modelli\u2014ad esempio aggiungendo un nuovo campo o creando una nuova tabella\u2014le migrazioni tengono traccia di questi cambiamenti, cos\u00ec da poterli applicare senza perdere i dati esistenti.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-come-funzionano\"><strong>Come funzionano?<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Modifichi i tuoi model<\/strong>: ad esempio, aggiungi una nuova classe o un nuovo campo.<\/li>\n\n\n\n<li><strong>Generi le migrazioni<\/strong>: con il comando<br><code>python manage.py makemigrations<\/code><\/li>\n\n\n\n<li>Django esamina i tuoi modelli e crea o aggiorna i file di migrazione relativi alle modifiche apportate.<\/li>\n\n\n\n<li><strong>Applichi le migrazioni<\/strong>: con il comando<br><code>python manage.py migrate<\/code><\/li>\n\n\n\n<li>Django traduce i file di migrazione in istruzioni SQL da eseguire sul tuo database, allineando la struttura delle tabelle ai nuovi modelli.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-perche-sono-utili\"><strong>Perch\u00e9 sono utili?<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Versionamento del database<\/strong>: ogni modifica ai modelli \u00e8 tracciata da un file di migrazione. Se lavori in team, questo permette a tutti di aggiornare la propria struttura dati in modo coerente.<\/li>\n\n\n\n<li><strong>Sicurezza dei dati<\/strong>: Django cerca di applicare cambiamenti senza perdere o corrompere i dati esistenti.<\/li>\n\n\n\n<li><strong>Processo semplificato<\/strong>: non devi scrivere direttamente le istruzioni SQL; Django si occupa di creare e gestire le query necessarie al tuo database.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-consigli-pratici\"><strong>Consigli pratici<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Esegui i comandi <\/strong><code>makemigrations<\/code><strong> e <\/strong><code>migrate<\/code><strong> ogni volta che modifichi i tuoi modelli<\/strong>, cos\u00ec sarai sicuro che il tuo database rifletta sempre i cambiamenti.<\/li>\n\n\n\n<li><strong>Includi i file di migrazione nel tuo controllo di versione<\/strong> (ad esempio Git), in modo che chiunque utilizzi il progetto possa applicare le stesse modifiche.<\/li>\n\n\n\n<li><strong>Non modificare manualmente i file di migrazione a meno che tu non sappia esattamente cosa stai facendo<\/strong>: \u00e8 molto pi\u00f9 sicuro lasciare che Django li gestisca per conto tuo.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configurazioni-iniziali-di-django\"><strong>Configurazioni iniziali di Django<\/strong><\/h2>\n\n\n\n<p>Una volta creato il tuo progetto, ci sono alcune configurazioni iniziali che potresti voler eseguire per personalizzare il comportamento del framework:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Modifica della lingua e del fuso orario:<\/strong> Django utilizza di default l\u2019inglese e il fuso orario UTC. Per cambiare queste impostazioni, modifica <code>settings.py<\/code>:<br><code>LANGUAGE_CODE = 'it-it'<br>TIME_ZONE = 'Europe\/Rome'<\/code><\/li>\n\n\n\n<li><strong>Configurazione del database:<\/strong> Django utilizza SQLite di default, ma puoi configurare altri database come PostgreSQL o MySQL. Ad esempio, per PostgreSQL:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\u00a0\u00a0\u00a0DATABASES = {\n      <span class=\"hljs-string\">'default'<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'ENGINE'<\/span>: <span class=\"hljs-string\">'django.db.backends.postgresql'<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'NAME'<\/span>: <span class=\"hljs-string\">'nome_database'<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'USER'<\/span>: <span class=\"hljs-string\">'utente'<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'PASSWORD'<\/span>: <span class=\"hljs-string\">'password'<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'HOST'<\/span>: <span class=\"hljs-string\">'localhost'<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'PORT'<\/span>: <span class=\"hljs-string\">'5432'<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Creazione di una chiave segreta sicura:<\/strong> La chiave segreta di Django \u00e8 generata automaticamente, ma per una maggiore sicurezza in produzione, puoi utilizzare strumenti come python-decouple per gestirla.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creazione-di-un-file-env-con-python-decouple\"><strong>Creazione di un file .env con python-decouple<\/strong><\/h2>\n\n\n\n<p>Per una gestione pi\u00f9 sicura e organizzata delle configurazioni sensibili (come chiavi segrete, credenziali di database e impostazioni specifiche dell\u2019ambiente), puoi utilizzare la libreria python-decouple. Questa libreria consente di separare i dati sensibili dal codice sorgente, archiviandoli in un file .env.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-installazione-di-python-decouple\"><strong>Installazione di python-decouple<\/strong><\/h3>\n\n\n\n<p>Installa la libreria con il seguente comando:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pip install python-decouple<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-creazione-del-file-env\"><strong>Creazione del file <\/strong><strong>.env<\/strong><\/h3>\n\n\n\n<p>Nella directory principale del tuo progetto, crea un file chiamato .env e aggiungi le configurazioni necessarie. Ad esempio:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">SECRET_KEY=tuachiavesegreta\nDEBUG=<span class=\"hljs-keyword\">True<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-utilizzo-del-file-env-in-django\"><strong>Utilizzo del file <\/strong><strong>.env<\/strong><strong> in Django<\/strong><\/h3>\n\n\n\n<p>Modifica il file settings.py per utilizzare le configurazioni dal file .env:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">from decouple import config\n\n<span class=\"hljs-comment\"># Chiave segreta<\/span>\n\nSECRET_KEY = config(<span class=\"hljs-string\">'SECRET_KEY'<\/span>)\n\n<span class=\"hljs-comment\"># Modalit\u00e0 debug<\/span>\n\nDEBUG = config(<span class=\"hljs-string\">'DEBUG'<\/span>, <span class=\"hljs-keyword\">default<\/span>=<span class=\"hljs-keyword\">False<\/span>, cast=bool)\n\n<span class=\"hljs-comment\"># Configurazione del database<\/span>\n\nDATABASES = {\n\n\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'default'<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'ENGINE'<\/span>: <span class=\"hljs-string\">'django.db.backends.postgresql'<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'NAME'<\/span>: config(<span class=\"hljs-string\">'DATABASE_NAME'<\/span>),\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'USER'<\/span>: config(<span class=\"hljs-string\">'DATABASE_USER'<\/span>),\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'PASSWORD'<\/span>: config(<span class=\"hljs-string\">'DATABASE_PASSWORD'<\/span>),\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'HOST'<\/span>: config(<span class=\"hljs-string\">'DATABASE_HOST'<\/span>, <span class=\"hljs-keyword\">default<\/span>=<span class=\"hljs-string\">'localhost'<\/span>),\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">'PORT'<\/span>: config(<span class=\"hljs-string\">'DATABASE_PORT'<\/span>, <span class=\"hljs-keyword\">default<\/span>=<span class=\"hljs-string\">'5432'<\/span>),\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-vantaggi-dell-utilizzo-di-env-con-python-decouple\"><strong>Vantaggi dell\u2019utilizzo di <\/strong><strong>.env<\/strong><strong> con python-decouple<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Sicurezza<\/strong>: Le informazioni sensibili non sono pi\u00f9 direttamente nel codice sorgente, riducendo il rischio di esposizione accidentale.<\/li>\n\n\n\n<li><strong>Flessibilit\u00e0<\/strong>: Puoi utilizzare configurazioni diverse per ambienti diversi (sviluppo, testing, produzione) semplicemente modificando il file .env.<\/li>\n\n\n\n<li><strong>Pulizia del codice<\/strong>: Il file <code>settings.py<\/code> diventa pi\u00f9 leggibile e meno ingombrante.<\/li>\n<\/ol>\n\n\n\n<p>Assicurati di aggiungere il file .env al file <code>.gitignore<\/code> per evitare che venga incluso nei sistemi di version control.<\/p>\n\n\n\n<p>Con queste modifiche, hai configurato correttamente il tuo progetto per gestire in modo sicuro le variabili di ambiente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-risorse-utili\"><strong>Risorse utili<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.djangoproject.com\/\">Documentazione ufficiale di Django<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.python.org\/3\/library\/venv.html\">venv \u2014 Creazione di un ambiente virtuale&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/HBNetwork\/python-decouple\">python-decouple<\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p><strong>Happy coding!<\/strong><\/p><\/blockquote><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>In questa guida della rubrica TechPills per tutti, esploriamo come creare il tuo primo progetto Django partendo da zero.<br \/>\nAlla fine dell&#8217;articolo, avrai un progetto Django funzionante, pronto per essere sviluppato ulteriormente. Perfetto per principianti e chiunque voglia padroneggiare le basi di Django!<\/p>\n","protected":false},"author":317,"featured_media":27029,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10263],"tags":[],"collections":[],"class_list":{"0":"post-31544","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend-it","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>TechPills per tutti: Metti in moto il tuo primo progetto Django - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Scopri Django con la guida TechPills: impara i concetti base e crea subito il tuo primo progetto funzionante con uno dei framework Python pi\u00f9 potenti. \ud83d\ude80\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TechPills per tutti: Metti in moto il tuo primo progetto Django\" \/>\n<meta property=\"og:description\" content=\"Scopri Django con la guida TechPills: impara i concetti base e crea subito il tuo primo progetto funzionante con uno dei framework Python pi\u00f9 potenti. \ud83d\ude80\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-06T17:17:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-06T17:17:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"raffaelegrieco.it\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"raffaelegrieco.it\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/\"},\"author\":{\"name\":\"raffaelegrieco.it\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/49f7d5cbb5e20d151e460c3a9ce478d5\"},\"headline\":\"TechPills per tutti: Metti in moto il tuo primo progetto Django\",\"datePublished\":\"2025-02-06T17:17:40+00:00\",\"dateModified\":\"2025-02-06T17:17:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/\"},\"wordCount\":1907,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp\",\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/\",\"name\":\"TechPills per tutti: Metti in moto il tuo primo progetto Django - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp\",\"datePublished\":\"2025-02-06T17:17:40+00:00\",\"dateModified\":\"2025-02-06T17:17:42+00:00\",\"description\":\"Scopri Django con la guida TechPills: impara i concetti base e crea subito il tuo primo progetto funzionante con uno dei framework Python pi\u00f9 potenti. \ud83d\ude80\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp\",\"width\":1792,\"height\":1024,\"caption\":\"This article is a review about PythonEverywhere, a platform that allows devs to code with Python remotely.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"TechPills per tutti: Metti in moto il tuo primo progetto Django\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/49f7d5cbb5e20d151e460c3a9ce478d5\",\"name\":\"raffaelegrieco.it\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/IMG_6306-100x100.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/IMG_6306-100x100.jpg\",\"caption\":\"raffaelegrieco.it\"},\"description\":\"Aspiring Computer Engineer dedicated to crafting innovative solutions and tackling complex challenges. With a strong foundation in backend development, I also delve into frontend and mobile development to create seamless and comprehensive applications. Always eager to learn and explore new technologies to enhance my skills and contribute effectively to the developer community.\",\"sameAs\":[\"https:\/\/raffaelegrieco.it\",\"https:\/\/www.linkedin.com\/in\/raffaelegrieco\/\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/raffaelegrieco-it\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"TechPills per tutti: Metti in moto il tuo primo progetto Django - Codemotion Magazine","description":"Scopri Django con la guida TechPills: impara i concetti base e crea subito il tuo primo progetto funzionante con uno dei framework Python pi\u00f9 potenti. \ud83d\ude80","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/","og_locale":"en_US","og_type":"article","og_title":"TechPills per tutti: Metti in moto il tuo primo progetto Django","og_description":"Scopri Django con la guida TechPills: impara i concetti base e crea subito il tuo primo progetto funzionante con uno dei framework Python pi\u00f9 potenti. \ud83d\ude80","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-02-06T17:17:40+00:00","article_modified_time":"2025-02-06T17:17:42+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp","type":"image\/webp"}],"author":"raffaelegrieco.it","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"raffaelegrieco.it","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/"},"author":{"name":"raffaelegrieco.it","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/49f7d5cbb5e20d151e460c3a9ce478d5"},"headline":"TechPills per tutti: Metti in moto il tuo primo progetto Django","datePublished":"2025-02-06T17:17:40+00:00","dateModified":"2025-02-06T17:17:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/"},"wordCount":1907,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp","articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/","name":"TechPills per tutti: Metti in moto il tuo primo progetto Django - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp","datePublished":"2025-02-06T17:17:40+00:00","dateModified":"2025-02-06T17:17:42+00:00","description":"Scopri Django con la guida TechPills: impara i concetti base e crea subito il tuo primo progetto funzionante con uno dei framework Python pi\u00f9 potenti. \ud83d\ude80","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp","width":1792,"height":1024,"caption":"This article is a review about PythonEverywhere, a platform that allows devs to code with Python remotely."},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/techpills-per-tutti-metti-in-moto-il-tuo-primo-progetto-django\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/"},{"@type":"ListItem","position":3,"name":"TechPills per tutti: Metti in moto il tuo primo progetto Django"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/49f7d5cbb5e20d151e460c3a9ce478d5","name":"raffaelegrieco.it","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/IMG_6306-100x100.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/IMG_6306-100x100.jpg","caption":"raffaelegrieco.it"},"description":"Aspiring Computer Engineer dedicated to crafting innovative solutions and tackling complex challenges. With a strong foundation in backend development, I also delve into frontend and mobile development to create seamless and comprehensive applications. Always eager to learn and explore new technologies to enhance my skills and contribute effectively to the developer community.","sameAs":["https:\/\/raffaelegrieco.it","https:\/\/www.linkedin.com\/in\/raffaelegrieco\/"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/raffaelegrieco-it\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-600x600.webp","author_info":{"display_name":"raffaelegrieco.it","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/raffaelegrieco-it\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp",1792,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-300x171.webp",300,171,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-768x439.webp",768,439,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-1024x585.webp",1024,585,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-1536x878.webp",1536,878,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho.webp",1792,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-896x504.webp",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-10-16.14.11-Create-a-minimalist-and-dev-friendly-aesthetic-cover-for-a-product-called-PythonEverywhere-a-platform-for-coding-with-Python-remotely.-The-design-sho-600x600.webp",600,600,true]},"uagb_author_info":{"display_name":"raffaelegrieco.it","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/raffaelegrieco-it\/"},"uagb_comment_info":0,"uagb_excerpt":"In questa guida della rubrica TechPills per tutti, esploriamo come creare il tuo primo progetto Django partendo da zero. Alla fine dell'articolo, avrai un progetto Django funzionante, pronto per essere sviluppato ulteriormente. Perfetto per principianti e chiunque voglia padroneggiare le basi di Django!","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/31544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/317"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=31544"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/31544\/revisions"}],"predecessor-version":[{"id":31986,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/31544\/revisions\/31986"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/27029"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=31544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=31544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=31544"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=31544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}