Tutorial su Django: Funzionalità, Archiarchitettura e storia

⚡ Riepilogo intelligente

Django è un linguaggio libero e open-source Python Framework web basato sul modello Model-View-Template, che consente lo sviluppo rapido di siti web sicuri, scalabili e basati su database, grazie a componenti riutilizzabili, un'interfaccia di amministrazione automatica e un design "tutto incluso".

  • 🔘 Struttura: Django è un programma di alto livello Python Framework per la creazione rapida di applicazioni web complesse basate su database.
  • ☑️ Architecnologia: Il modello Model-View-Template (MVT) permette a Django di gestire il controller e di separare dati, logica e presentazione.
  • Batterie incluse: Le funzionalità integrate di amministrazione, autenticazione, moduli e internazionalizzazione eliminano la maggior parte delle operazioni di configurazione ripetitive.
  • Sicurezza: Le misure di sicurezza predefinite bloccano gli attacchi CSRF, cross-site scripting, SQL injection e clickjacking.
  • 🧪 Scala: InstagramPinterest, Mozilla e Disqus si affidano a Django per gestire un traffico molto elevato.
  • 🤖 AI: Django funge da API per i modelli di machine learning, e strumenti come GitHub Copilot velocizzano la programmazione del backend.

Tutorial di Django per principianti

Django alimenta alcuni dei siti più grandi del web, mantenendo al contempoping Sviluppo quotidiano rapido e organizzato. Prima di esplorare le sue caratteristiche, l'architettura e la storia, le sezioni seguenti iniziano con le basi dei framework web e ciò che rende Django unico.

Riepilogo del tutorial di Django

Questo tutorial su Django copre tutti gli argomenti di base partendo dalle fondamenta. In questo tutorial, imparerai concetti come cos'è Django, la sua storia, le sue caratteristiche, le peculiarità del framework Django, i componenti di Django, i suoi vantaggi e svantaggi e molto altro ancora.

Prima di imparare Django, cerchiamo di capire:

Cos'è un framework Web?

Un framework web è una libreria di codice che ti aiuta a costruire un sito web, un'applicazione web o un servizio web dinamico, flessibile, scalabile e manutenibile. Diversi framework web includono Zend per PHP, Ruby on Rails per Ruby e altri.

Cos'è Django?

Django è un framework di sviluppo web per Python che offre metodi standard per uno sviluppo di siti web rapido ed efficace. L'obiettivo principale di questo framework web di alto livello è la creazione di siti web complessi basati su database. Aiuta a costruire e mantenere applicazioni web di qualità. Consente di rendere il processo di sviluppo fluido e di risparmiare tempo, per uno sviluppo rapido.

Perchè Django? Principali vantaggi di Django

Ecco i principali vantaggi di Django:

  • Django è facile da configurare e da eseguire. Offre una varietà di opzioni per iniziare.
  • Fornisce un'interfaccia utente pronta all'uso per le attività amministrative.
  • Consente la creazione di siti web multilingue grazie al suo sistema di internazionalizzazione integrato.
  • Ti aiuta a soddisfare rapidamente enormi richieste di traffico.
  • Django viene utilizzato per costruire tutti i tipi di sistemi di gestione dei contenuti, social network e piattaforme di calcolo scientifico.
  • Django ti aiuta a fornire test end-to-end dell'applicazione.
  • Ti aiuta a documentare la tua API con un output HTML.
  • Il framework REST offre un ampio supporto per diversi protocolli di autenticazione.
  • Offre autorizzazioni e politiche di limitazione.
  • È ampiamente utilizzato per le richieste API di limitazione della velocità da parte di un singolo utente.

Storia di Django

Anno Pietra miliare
2003 Il progetto è stato avviato da Adrian Holovaty e Simon Willison come iniziativa interna del quotidiano Lawrence Journal-World.
Luglio 2005 È stato pubblicato nel luglio 2005 con il titolo "Django", in onore del chitarrista jazz Django Reinhardt.
Giugno 2008 È stato dichiarato che un software Django Foundation (DSF) manterrebbe Django.
29 Luglio 2009 Django 1.1 è stato rilasciato con funzionalità come gli aggregati e i test basati sulle transazioni.
17 Maggio 2010 È stata rilasciata la versione 1.2 di Django. L'aggiornamento ha introdotto funzionalità come il supporto per più database e un backend per la posta elettronica, oltre a miglioramenti per le sessioni e i cookie.
23 marzo 2011 La versione 1.3 ha introdotto funzionalità come le viste basate su classi e i file statici.
23 marzo 2012 La versione 1.4 è stata lanciata con nuove funzionalità come i fusi orari e i test direttamente nel browser.
Febbraio 26 2013 La versione 1.5 è arrivata con Python 3 funzionalità di supporto e configurabili del modello utente.
Novembre 6 2013 La versione 1.6 includeva funzionalità di gestione delle transazioni del database e di pooling delle connessioni.
2 settembre 2014 La versione 1.7 presentava nuove funzionalità come il caricamento delle applicazioni, le migrazioni e la configurazione.
Aprile 1 2015 È stato fornito supporto nativo per diversi motori di template.
1 dicembre 2015 Nella versione 1.9 è stata introdotta una funzione di convalida automatica della password.
Agosto 1 2016 Nella versione 1.10, ricerca full-text per PostgreSQL è stato lanciato.
Aprile 4 2017 La versione 1.11 è diventata l'ultima versione a supportare Python 2.7
2 dicembre 2017 La versione 2.0 è diventata la prima Python Versione di rilascio limitata a 3.
Agosto 1 2018 La versione 2.1 includeva funzionalità di supporto per l'autorizzazione di "visualizzazione" del modello.
2021 È stato rimosso il supporto per Django 3.0 ed è stato aggiunto il supporto per Django 3.2.

In questo tutorial su Django per principianti, impareremo a conoscere le funzionalità di Django.

Caratteristiche di Django

Di seguito le caratteristiche di Django:

  • Ti aiuta a definire i modelli per il URLs nella tua applicazione.
  • Semplice ma potente URL .
  • Sistema di autenticazione integrato.
  • Un database basato su un linguaggio di programmazione orientato agli oggetti che offre funzionalità di archiviazione e recupero dati di altissimo livello.
  • La funzionalità di interfaccia amministrativa automatica consente di aggiungere, modificare ed eliminare elementi. È possibile personalizzare il pannello di amministrazione in base alle proprie esigenze.
  • Il framework di cache include diversi meccanismi di cache.

In questo tutorial sul framework Django, impareremo a conoscere le caratteristiche di Django.

Caratteristiche di Django

Ecco le principali caratteristiche di Django:

  • Debolmente accoppiato – Django ti aiuta a rendere ogni elemento del suo stack indipendente dagli altri.
  • Less codice – Garantisce uno sviluppo efficace.
  • Non ripetuto – Tutto dovrebbe essere sviluppato in un unico luogo preciso, anziché essere ripetuto più volte.
  • Sviluppo veloce – Django offre uno sviluppo di applicazioni rapido e affidabile.
  • Design coerente – Django mantiene un design pulito e semplifica l'applicazione delle migliori pratiche di sviluppo web.

Nel prossimo tutorial per principianti su Django, impareremo l'architettura di Django.

Django Architecnologia: MVC e MVT

Di seguito è riportata un'architettura dettagliata di Django:

Django Architectura

Django Architectura

Modello MVC

Quando si parla di applicazioni che forniscono un'interfaccia utente (web o desktop), si fa solitamente riferimento all'architettura MVC. Il pattern MVC si basa su Model, View e Controller.

Migliori Modello Definisce la struttura dei dati e si occupa di interrogare il database.

Migliori Visualizzare definisce quali dati devono essere presentati e restituisce una risposta HTTP.

Migliori Controller è la parte dell'applicazione che gestisce l'interazione con l'utente.

Modello Django MVC-MVT

Il modello Model-View-Template (MVT) è un concetto diverso rispetto al modello MVC. La principale differenza tra questi due modelli architetturali è che Django gestisce direttamente la parte del Controller (il codice software che controlla le interazioni tra Model e View). Il template è un file HTML che viene combinato con un file DTL (Django Template Language).

Il diagramma seguente mostra come tutti i componenti del pattern MVT interagiscono tra loro per soddisfare una specifica richiesta dell'utente.

Django Architecnologia: MVC e MVT

MVT Architectura

Come si vede nel diagramma sopra, un utente richiede una risorsa da Django. Django agisce come un controller e verifica la disponibilità della risorsa nel URL.

Se l' URL Quando si utilizzano le mappe, viene richiamata una vista che interagisce con il modello e il template. Django risponde quindi all'utente inviando un template come risposta.

In questa serie di tutorial su Django per principianti, impareremo a conoscere i componenti di Django.

Componenti di Django

Modulo

Django ha una potente libreria di moduli che gestisce il rendering dei moduli come HTML. La libreria aiuta a convalidare i dati inviati e a convertirli in Python tipi.

Autenticazione

Gestisce account utente, gruppi, sessioni utente basate su cookie e altro ancora.

Admin

Legge i metadati nei tuoi modelli per fornire un'interfaccia solida che può essere utilizzata per gestire i contenuti del tuo sito.

Internazionalizzazione

Django offre supporto per la traduzione di testi in diverse lingue e per la formattazione di date, orari, numeri e fusi orari in base alla localizzazione.

Sicurezza

Django offre misure di sicurezza contro i seguenti attacchi:

  • Falsificazione di richieste tra siti (CSRF)
  • Cross Site Scripting
  • SQL Injection
  • Clickjacking
  • Esecuzione di codice remoto

Aziende famose che utilizzano Django

Ecco alcune aziende che utilizzano Django:

  • Bitbucket
  • Disqus
  • NASA
  • PBS (servizio pubblico di radiodiffusione)
  • Pinterest
  • Instagram
  • Mozilla
  • Il Washington Post
  • Il New York Times
  • Los Angeles Times
  • The Guardian
  • National Geographic
  • Discovery Channel

Svantaggi dell'utilizzo di Django

Ecco alcuni svantaggi dell'utilizzo di Django:

  • Un singolo processo non può gestire più richieste contemporaneamente.
  • Django è uno strumento molto monolitico.
  • I componenti vengono distribuiti insieme, il che può generare confusione.
  • Per lavorare con Django è necessaria la conoscenza dell'intero sistema.
  • Rende i componenti delle applicazioni web strettamente interconnessi.
  • È necessario eseguire una lunga programmazione per attività minori.

DOMANDE FREQUENTI

Django è principalmente un framework backend, sebbene venga spesso descritto come full-stack poiché il suo livello di template si occupa del rendering dell'HTML. Gestisce la logica lato server, i database, il routing e la sicurezza, mentre i template si occupano della presentazione per il browser.

Django è un framework full-stack completo, con ORM integrato, pannello di amministrazione e autenticazione. Flask è un microframework leggero che si mantiene minimale e si affida alle estensioni per le stesse funzionalità, offrendo agli sviluppatori un maggiore controllo manuale.

Il Django ORM, o object-relational mapper, consente di definire le tabelle del database come Python classi e interrogarle con Python codice invece di SQL puro. Supporta database come PostgreSQL, MySQL, SQLitee Oracle.

Esegui python -m django –version sulla riga di comando oppure apri un Python shell ed esegui import django seguito da print(django.get_version()). Entrambi mostrano il numero di versione di Django installato.

Il middleware è una serie di hook che elaborano ogni richiesta e risposta a livello globale. Django utilizza il middleware per le sessioni, l'autenticazione, la protezione CSRF e le intestazioni di sicurezza, ognuno dei quali viene eseguito in sequenza prima e dopo l'esecuzione della tua vista.

Una conoscenza pratica di Python È inoltre necessaria la conoscenza di concetti web di base come HTTP, HTML e database. Comprendere la programmazione orientata agli oggetti rende i modelli Django e le viste basate su classi molto più facili da apprendere.

Sì. Django spesso fornisce modelli di machine learning tramite viste o il Django REST Framework, esponendo le previsioni come endpoint API. Un modello addestrato viene caricato una sola volta all'avvio e restituisce i risultati dell'inferenza ai client web o mobili.

GitHub Copilot e assistenti IA simili completano automaticamente modelli, viste e URL I modelli e i test possono fungere da struttura portante per il codice ripetitivo. Accelerano lo sviluppo, sebbene il codice generato debba sempre essere sottoposto a revisione per verificarne la sicurezza e la correttezza.

Riassumi questo post con: