Sviluppa una solida comprensione dei ruoli e delle funzioni di progetti e app all'interno del framework Django.
In Django, puoi utilizzare due componenti principali per creare un'applicazione web; app e progetti. Gli sviluppatori a volte usano questi termini in modo intercambiabile, sebbene abbiano significati e funzioni distinti nel framework web Django.
Comprensione dei progetti Django
In Django, un progetto è un contenitore di primo livello per la tua applicazione web. Un progetto contiene le configurazioni per la tua applicazione web e una o più app, ognuna delle quali fornisce un insieme specifico di funzionalità o caratteristiche per la tua applicazione web. Contiene anche tutti i componenti condivisi tra le sue diverse app. In un progetto Django, puoi trovare strumenti e utilità che semplificano la gestione della tua applicazione Web, come l'utilità della riga di comando Django e il server di sviluppo Django.
Componenti di un progetto Django
Un progetto Django in genere contiene diverse app e le configurazioni della tua applicazione web. Ogni volta che crei un nuovo progetto, Django genera automaticamente file contenenti queste configurazioni. I componenti inclusi in un progetto Django sono:
- Impostazioni: il modulo delle impostazioni contiene le configurazioni necessarie per il tuo progetto e le singole app nel tuo progetto. Questo modulo contiene principalmente opzioni di configurazione come la connessione al database, il middleware, l'app installata, gli host consentiti e altre configurazioni necessarie per il funzionamento dell'app Web.
- URL: Il modulo URL definisce un pattern URL per la tua applicazione. Ogni pattern URL nel tuo progetto può essere mappato a un altro pattern URL nella tua app o direttamente a una funzione di visualizzazione che gestisce la richiesta per l'URL specifico. Indipendentemente dal fatto che il pattern URL sia mappato a una funzione di visualizzazione o a un altro pattern URL nella tua app, l'obiettivo finale è mapparlo a una vista che gestisca la richiesta in modo efficace.
- WSGI: Il modulo WSGI (Web Server Gateway Interface) è lo standard Python per i server web e le applicazioni. Il modulo WSGI rende possibile l'esecuzione di Django su vari server.
- ASGI: Il modulo ASGI (Asynchronous Server Gateway Interface) gestisce le richieste asincrone come Connessioni WebSocket. ASGI è uno standard per i server Web asincroni per comunicare con le applicazioni Web Python.
- Altri componenti: A volte, ti verrà richiesto di aggiungere i tuoi componenti al tuo progetto Django, a seconda dei requisiti della tua applicazione. Questi componenti includono file statici, modelli, file multimediali e comandi di gestione personalizzati.
Come creare un progetto Django
Per creare un progetto Django, dovresti usare il file django-admin utilità della riga di comando. Puoi creare il tuo progetto Django seguendo questi passaggi:
- Nella tua interfaccia a riga di comando, vai alla directory in cui vuoi creare il tuo progetto Django.
- Installa Django con il gestore di pacchetti pip.
pip installa django
- Digita il seguente comando ed eseguilo:
django-admin startproject
Il comando precedente creerà una directory come questa:
Noterai una ridondanza nei nomi della directory del tuo progetto, ad esempio, il nome del tuo progetto appare due volte. Se vuoi sbarazzartene, puoi aggiungere un periodo quando esegui il tuo startproject comando così:
django-admin startproject .
Ora, la struttura del tuo progetto sarà simile a questa:
Con i passaggi precedenti, devi aver creato correttamente un progetto Django. IL gestire.py il file creato nel tuo progetto è importante per interagire con il tuo progetto Django.
Comprensione di un'app Django
Lo scopo di un'app è fornire al tuo progetto Django funzionalità specifiche. Un'app ti aiuta a organizzare la tua base di codice suddividendo le funzionalità del tuo progetto in componenti più piccoli.
Ad esempio, in un progetto blog, avrai un'app dedicata all'autenticazione e all'autorizzazione e un'altra dedicata ai post del blog. Puoi creare più app in base alle esigenze specifiche del tuo progetto.
Componenti di un'app Django
Un'app Django è composta da moduli relativi al progetto, ovvero a una caratteristica specifica del tuo sito web. Come con un progetto, Django genera automaticamente file utili quando crei un'app. I file generati da Django includono quanto segue:
- viste.py: Questo file conterrà tutta la logica necessaria per ricevere le richieste e inviare le risposte. Determina inoltre quale modello HTML eseguire il rendering in base alle azioni dell'utente sul tuo sito web.
- modelli.py: questo modulo stabilisce la struttura dei dati della tua app e determina come il database li memorizzerà. Utilizza l'ORM (Object-Relational Mapping) di Django per definire i dati. Il componente modelli definisce diverso relazioni di database in Django.
- admin.py: Il modulo admin definisce l'interfaccia di amministrazione della tua app Django. Dovresti registrare i tuoi modelli all'interno del file admin. Se hai bisogno di funzionalità di amministrazione aggiuntive oltre a quelle fornite da Django, puoi definire viste personalizzate per la tua interfaccia di amministrazione in questo modulo.
- URL.py: questo file definisce i pattern URL o le route univoche per una particolare app Django. A volte, Django non genera automaticamente questo file. In questo caso, puoi crearlo manualmente nella directory dell'app.
Django genera alcuni altri componenti, come app.py E test.py. Questi file definiscono le configurazioni dell'app e consentono rispettivamente di scrivere unit test.
Come creare un'app Django
Prima di creare un'app, devi aver creato un progetto. Dopo aver creato il progetto, vai alla directory contenente il file gestire.py file ed esegui il seguente comando nel tuo terminale:
python manage.py startproject
Il comando precedente creerà una struttura di cartelle come questa nello stesso livello di directory del tuo progetto:
Differenza tra un'app e un progetto in Django
Ci sono alcune nette differenze tra un progetto e un'app in Django. Alcuni di essi sono elencati di seguito.
Riutilizzabilità del codice
In Django, un'app è un componente riutilizzabile della tua applicazione web. Ciò significa che se disponi di un'app che gestisce l'autenticazione utente per un progetto, puoi riutilizzare la stessa app in un altro progetto con modifiche minime o nulle. Un progetto, invece, non è riutilizzabile. Una volta creato un progetto per una particolare applicazione web, non puoi utilizzarlo per un'altra applicazione.
Ambito di funzionamento
Un progetto opera a un livello superiore rispetto a un'app perché è responsabile della configurazione e della gestione complessiva del tuo sito web. D'altra parte, un'app è responsabile solo di una caratteristica o funzionalità specifica del tuo sito web.
Struttura delle cartelle
La differenza più evidente tra un'app e un progetto è la struttura delle cartelle. Un progetto in genere include impostazioni e altri file di configurazione responsabili del benessere del tuo sito web.
Segue un'app L'architettura MVT di Django. Contiene solo file e configurazioni responsabili del benessere di una caratteristica specifica del tuo sito web.
Il tuo progetto e la tua app lavorano insieme per creare una buona applicazione web
Sebbene il tuo progetto e la tua app abbiano la loro unicità, alla fine vengono utilizzati per offrirti un'esperienza senza interruzioni durante la creazione della tua applicazione. Dovresti essere in grado di combinare i componenti del progetto e dell'app per creare e personalizzare la tua applicazione web. Con la tua app e il tuo progetto in atto, puoi iniziare a costruire il tuo sito web con Django.