Come abilitare e connettere l’interfaccia di amministrazione di Django

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.

  1. cd ~/my_blog_app
  2. . 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:

  1. 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.

  1. 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.

settings.py
...
# 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.

  1. nano urls.py

Sotto il commento in alto, il file dovrebbe assomigliare al seguente.

urls.py
"""
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.

  1. cd ~/my_blog_app/blog

Ricordarsi di eseguire il comando migrate ogni volta che si apportano modifiche ai modelli, come segue.

  1. 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.

Output
Operations 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.

  1. 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.

  1. 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.

Output
Username (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.

Output
Password: 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:

  1. 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.

  1. cd ~/my_blog_app/blog/blogsite/

Quindi apri il file con nano, ad esempio.

  1. nano urls.py

Aggiungi le seguenti righe di codice al file.

urls.py
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:

  1. cd ~/my_blog_app/blog/blogsite

Quindi, apri il file admin.py in un editor di testo a tua scelta.

  1. nano admin.py

Il file sarà popolato con un’istruzione di importazione e un commento.

admin.py
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.

admin.py
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:

  1. 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.

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-and-connect-the-django-admin-interface