Introduzione
Se hai seguito la serie sullo sviluppo di Django, hai avviato un’applicazione Django, collegato l’applicazione a MySQL e creato i modelli di database per i dati Posts
e Comments
all’interno della tua applicazione web di blog.
In questo tutorial, ci connetteremo ed abiliteremo il sito di amministrazione di Django in modo che tu possa gestire il tuo sito web di blog. Il sito di amministrazione di Django è già predisposto con un’interfaccia utente progettata per consentire a te ed ad altre persone fidate di gestire i contenuti del sito web.
Vale la pena notare che la documentazione ufficiale di Django sottolinea che, sebbene ciò sia ideale per l’uso interno di un’organizzazione, non è consigliabile costruire un’applicazione web intorno a un’interfaccia di amministrazione di Django generata automaticamente. Se scopri che la tua interfaccia deve essere più incentrata sui processi o se risulta astratta i dettagli di implementazione delle tabelle e dei campi del database, sarebbe meglio scrivere le tue proprie viste per il lato amministrativo.
Prerequisiti
Questo tutorial fa parte della serie sullo sviluppo di Django ed è un continuo di quella serie.
Se non hai seguito questa serie, facciamo le seguenti ipotesi:
- Hai installato la versione 4 o successiva di Django.
- Hai collegato la tua app Django a un database. Noi stiamo usando MySQL e puoi ottenere questa connessione seguendo la parte due della serie Django, “Come creare un’app Django e collegarla a un database”.
- Stai lavorando con un sistema operativo basato su Unix, preferibilmente un server cloud Ubuntu 22.04 perché è il sistema su cui abbiamo testato. Se desideri configurare Django su un ambiente simile, consulta il nostro tutorial “Come installare Django e configurare un ambiente di sviluppo su Ubuntu 22.04”.
Dato che questo tutorial si occupa principalmente dell’interfaccia di amministrazione di Django, potresti riuscire a seguirlo anche se hai una configurazione leggermente diversa.
Passaggio 1 — Abilita l’admin
Ogni volta che iniziamo a lavorare in Python e Django, dovremmo attivare il nostro ambiente virtuale di Python e spostarci nella directory principale dell’applicazione. Se hai seguito la serie, puoi ottenere questo digitando quanto segue.
- cd ~/my_blog_app
- . env/bin/activate
Per abilitare l’Admin di Django, è necessario assicurarsi che la nostra app sia parte della lista di INSTALLED_APPS
nel file settings.py
.
Spostarsi nella directory del file delle impostazioni:
- cd ~/my_blog_app/blog/blog/
Da qui, aprire il file settings.py
. Se non è già presente, aggiungere django.contrib.admin
alla lista di INSTALLED_APPS
, utilizzando un editor di testo come nano.
- nano settings.py
La sezione INSTALLED_APPS
del file dovrebbe essere simile al seguente. La nostra app nella lista è quella in cima, 'blogsite',
ma se hai creato un’app con un nome diverso, assicurati che quella app sia elencata in questo file come dimostrato.
...
# Definizione dell'applicazione
INSTALLED_APPS = [
'blogsite',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...
Ricordati di salvare e chiudere il file se hai apportato modifiche. In nano, puoi farlo digitando CTRL
e X
, quindi Y
e infine INVIO
.
Ora possiamo aprire il file urls.py
, nuovamente con nano o un altro editor di testo.
- nano urls.py
Sotto il commento in alto, il file dovrebbe assomigliare al seguente.
…
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
Se il file è diverso da quello sopra, copia e incolla le righe sopra nel tuo file urls.py
.
Ora che ci siamo assicurati che il nostro progetto web Django abbia il codice appropriato nei file settings.py
e urls.py
, sappiamo che la nostra applicazione avrà accesso ai modelli admin e all’interfaccia utente admin.
Passo 2 – Verificare che Admin sia un’app installata
Dovremmo quindi migrare i modelli al database in modo che vengano aggiunti i nuovi modelli Admin.
Navigare nella directory in cui si trova il file manage.py
.
- cd ~/my_blog_app/blog
Ricordarsi di eseguire il comando migrate
ogni volta che si apportano modifiche ai modelli
, come segue.
- python manage.py migrate
Se non abbiamo apportato alcuna modifica ai file sopra, dovremmo ricevere un output simile al seguente al termine dell’esecuzione del comando migrate
.
OutputOperations to perform:
Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
No migrations to apply.
In caso contrario, l’output dovrebbe indicare che Django ha eseguito le migrazioni necessarie per supportare la nostra app.
Ora possiamo avviare il server eseguendo il seguente comando. È possibile sostituire 0.0.0.0
con il proprio indirizzo IP.
- python manage.py runserver 0.0.0.0:8000
Poi navigare nell’URL del pannello admin nel browser di scelta. Assicurarsi di inserire l’indirizzo IP del proprio server.
http://your-server-ip:8000/admin/
Verrà visualizzata una schermata di accesso simile a questa.
Raggiungere questa schermata ci conferma che abbiamo abilitato correttamente l’app admin.
Sebbene abbiamo abilitato l’applicazione, potremmo non aver ancora configurato un account di amministrazione Django. Possiamo creare l’account amministratore per effettuare il login nel prossimo passaggio.
Passaggio 3 – Creare un account amministratore super-user
Se hai già configurato un account amministratore e puoi accedere alla pagina di amministrazione, puoi saltare questo passaggio.
Apri un nuovo terminale per connetterti al server, o disabilita l’applicazione Django premendo CTRL
e C
in modo da poter lavorare nell’ambiente di programmazione del terminale del server.
Django consente di generare un account super-user, che possiamo fare eseguendo il file manage.py
per avviare il processo di creazione del super-user.
- python manage.py createsuperuser
Una volta fatto ciò, ci verrà chiesto di inserire i dettagli per il nome utente, l’email e la password. In questo tutorial, creeremo un account amministratore con il nome utente admin_user
, l’email [email protected]
e la password admin123
. Dovresti inserire queste informazioni con le tue preferenze e assicurarti di utilizzare una password sicura che ricorderai.
OutputUsername (leave blank to use 'root'): admin_user
Email address: [email protected]
Quindi inserisci la tua password due volte quando vedi il prompt Password:
. Non riceverai l’output delle digitazioni della password quando la inserisci. Premi invio dopo ogni prompt per confermare la tua password.
OutputPassword:
Password (again):
A questo punto, abbiamo un account amministratore con il nome utente admin_user
e la password admin123
.
Effettuiamo l’accesso e vediamo cosa c’è nella nostra pagina di amministrazione.
Se necessario, eseguiamo nuovamente l’applicazione Django con python manage.py runserver 0.0.0.0:8000
e poi torniamo all’URL http://your-server-ip:8000/admin/
per accedere alla pagina di accesso dell’amministrazione. Successivamente effettuiamo l’accesso con il nome utente e la password appena creati.
Dopo un accesso riuscito, otterremo la seguente pagina.
Successivamente, dovremo collegare l’app del nostro blog al pannello di amministrazione.
Passaggio 4 – Creare modelli di URL per Post e Comment
Nel passaggio precedente, abbiamo effettuato correttamente l’accesso all’interfaccia di amministrazione, ma potresti aver notato che la nostra app del blog non è ancora disponibile. Per popolare l’interfaccia di amministrazione con l’app del blog, dobbiamo aggiungerla e registrarla con i modelli associati Post
e Comment
.
Per fare ciò, creeremo un file vuoto chiamato urls.py
, nella directory blogsite
, nel seguente modo:
- touch ~/my_blog_app/blog/blogsite/urls.py
In questo file, aggiungeremo il modello di URL per la nostra applicazione del blog in modo da potervi accedere tramite l’interfaccia di amministrazione.
Spostiamoci nella posizione di quel file urls.py
che abbiamo appena creato.
- cd ~/my_blog_app/blog/blogsite/
Quindi apri il file con nano, ad esempio.
- nano urls.py
Aggiungi le seguenti righe di codice al file.
from django.urls import path
from . import views
urlpatterns = [
path('$/', views.posts, name='posts'),
path('$/', views.comments, name='comments'),
]
Queste sono le espressioni di pattern URL necessarie per consentire all’applicazione di accedere alle views
per Posts
e Comments
. Non abbiamo ancora creato quelle views
, ma le affronteremo più avanti nella serie.
Passaggio 5 – Collega l’app Blog a Admin
Collegare il nostro blog all’interfaccia di amministrazione ci permetterà di vedere i collegamenti sia per i Posts
che per i Comments
nel pannello di controllo dell’amministratore. Al momento, il pannello di controllo mostra solo i collegamenti per Groups
e Users
.
Per collegare i due insieme, dobbiamo registrare i nostri modelli Posts
e Comments
all’interno del file admin di blogsite
.
Naviga nella directory blogsite
:
- cd ~/my_blog_app/blog/blogsite
Quindi, apri il file admin.py
in un editor di testo a tua scelta.
- nano admin.py
Il file sarà popolato con un’istruzione di importazione e un commento.
from django.contrib import admin
# Registra i tuoi modelli qui.
Dovresti modificare il file in modo che contenga il seguente codice per supportare la nostra app.
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment
admin.site.register(Post)
admin.site.register(Comment)
Quando sei soddisfatto del file, salva ed esci.
Hai ora registrato i modelli Post
e Comment
all’interno del pannello di amministrazione. Ciò consentirà all’interfaccia di amministrazione di visualizzare questi modelli all’utente che è autenticato e sta visualizzando la dashboard di amministrazione.
Passaggio 6 – Verifica che l’app Blog sia stata aggiunta all’amministrazione
Ora che hai aggiunto il codice Python pertinente, avvia il server. Apri http://indirizzo-ip-del-tuo-server:8000/admin
e accedi all’amministrazione utilizzando le tue credenziali se non hai effettuato l’accesso. In questo tutorial, abbiamo effettuato l’accesso con il nome utente admin_user
e la password admin123
.
Ora che hai effettuato l’accesso, dovresti visualizzare la seguente pagina web. Se non è cambiata rispetto a prima, potrebbe essere necessario aggiornare il browser.
Ciò verifica che abbiamo ora collegato la nostra app, blogsite
, alla dashboard di amministrazione di Django.
Quando hai finito di testare la tua app, puoi premere CTRL
+ C
per interrompere l’esecuzione del server Django. Ciò ti riporterà all’ambiente di programmazione.
Quando sei pronto per uscire dall’ambiente Python, puoi eseguire il comando deactivate
:
- deactivate
La disattivazione dell’ambiente di programmazione ti riporterà al prompt del comando terminale.
Conclusione
In questo tutorial, hai abilitato con successo l’interfaccia di amministrazione, creato un login amministratore e registrato i modelli Post
e Comment
nell’amministrazione.
L’interfaccia di amministrazione di Django ti permetterà di creare post e monitorare i commenti del tuo blog.
Nella prossima parte della serie, creeremo le views
per l’applicazione del blog.