Django è un noto framework web che semplifica il processo di creazione di app web robuste, scalabili, sicure e ad alte prestazioni. È un progetto open-source scritto in Python. Puoi dare un'occhiata a maggiori informazioni dettagliate su Django qui.
Qualsiasi app web richiede un database come backend per gestire i dati. Django supporta vari motori di database come backend, ad esempio, MySQL, PostgreSQL, SQLite ecc. PostgreSQL è un potente sistema di database relazionale a oggetti open-source. È famoso per la sua affidabilità, scalabilità, sicurezza e un robusto set di funzionalità. Puoi scoprire di più su PostgreSQL qui.
In questa guida, mostreremo come integrare PostgreSQL come backend su un'app Django di esempio.
Prerequisiti
Lavorare con Django richiede alcune configurazioni di sistema.
- Un server Ubuntu 21.04 configurato correttamente. Scopri di più su come configurare un server Ubuntu.
- Un ambiente di sviluppo Python. Django è scritto in Python, quindi richiede l'ambiente Python per essere eseguito.
- PostgreSQL installato, poiché lo useremo come server di database per la nostra app Django. Scopri di più su come installare e configurare PostgreSQL su Ubuntu qui.
Questa guida mostrerà anche come utilizzare vari moduli e librerie Python necessari per un'app Django funzionante.
Passo 1. Installazione dei componenti necessari
Affinché il nostro progetto funzioni, abbiamo bisogno di una serie di pacchetti importanti installati sul nostro sistema Ubuntu. Fortunatamente, sono tutti direttamente disponibili dai repository ufficiali dei pacchetti di Ubuntu. Questi pacchetti includono componenti Python e componenti del database (PostgreSQL).
Per prima cosa, avvia il terminale e aggiorna la cache dei pacchetti APT:
|
1 |
sudo apt update |
Successivamente, installa i pacchetti:
|
1 |
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib |
Passo 2. Preparazione del database
PostgreSQL è ora installato e pronto all'uso. Successivamente, creeremo un database dedicato e un utente per la nostra app Django. Avere un utente dedicato è vantaggioso per la gestione del database e dei permessi.
Durante l'installazione, PostgreSQL crea un utente dedicato postgres. Ha il permesso di eseguire qualsiasi attività amministrativa su PostgreSQL. Accedi all'account postgres :
|
1 |
sudo su – postgres |
Dovresti trovarti in una nuova sessione di shell con l'utente postgres. Quindi, apri una shell di PostgreSQL:
|
1 |
psql |
Ora creeremo un database dedicato per la nostra app Django. Si consiglia di assegnargli un nome corrispondente a quello dell'app Django:
|
1 |
CREATE DATABASE <database_name>; |
Successivamente, creeremo un utente di database dedicato. Useremo questo utente per accedere al database dedicato a Django:
|
1 |
CREATE USER <username> WITH PASSWORD '<password>'; |
Il passo successivo consiste nel modificare un paio di parametri di connessione per il nuovo utente. Questo aiuta a velocizzare le operazioni del database poiché non richiederà di interrogare i valori ogni volta che viene stabilita una connessione. Esegui i seguenti comandi:
|
1 2 3 |
ALTER ROLE <username> SET client_encoding TO 'utf8'; ALTER ROLE <username> SET default_transaction_isolation TO 'read committed'; ALTER ROLE <username> SET timezone TO '<timezone>'; |
Diamo una rapida occhiata a questi comandi:
-
Stiamo impostando la codifica predefinita su UTF-8. È ciò che Django si aspetta quando interagisce con i database.
-
Lo schema di transazione predefinito è impostato su "read committed", in modo che le letture da transazioni non completate siano bloccate.
-
Il fuso orario dovrebbe essere impostato in base alla posizione.
Se non sei sicuro del nome del fuso orario, il seguente comando elencherà tutti i fusi orari supportati da PostgreSQL:
|
1 |
SELECT * FROM pg_timezone_names; |
Infine, concedi al nuovo utente i permessi completi sul database dedicato a Django:
|
1 |
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>; |
Il nostro lavoro con PostgreSQL è ora terminato. Esci dalla psql shell e chiudi la sessione postgres .
Passo 3. Installazione di Django
Abbiamo configurato il server di database necessario per la nostra app Django. Ora installeremo e configureremo l'app Django dedicata. Sebbene Django sia direttamente disponibile nel repository ufficiale di Ubuntu, non consigliamo di utilizzare questo metodo, poiché installerà Django a livello di sistema. Per una migliore flessibilità e facilità di gestione, installeremo invece Django in un ambiente virtuale. È una pratica standard installare e configurare Django all'interno di un ambiente virtuale Python.
Python ha un modulo virtualenv che crea un ambiente virtuale Python in una posizione di destinazione. L'ambiente ottiene la propria copia dei binari e delle configurazioni di Python. Apportare modifiche all'interno dell'ambiente virtuale non avrà alcun impatto sul resto del sistema.
Installa virtualenv:
|
1 |
sudo apt install virtualenv |
Successivamente, il nostro obiettivo è avere una directory dedicata per stabilire l'ambiente virtuale Python. Servirà come base per la nostra app Django. A scopo dimostrativo, il nome della nostra app sarà sample_app. Crea una nuova directory:
|
1 |
mkdir -pv <dir_name> |
Cambia la directory attiva corrente e stabilisci l'ambiente virtuale:
|
1 2 |
cd sample_app/ virtualenv sample_app_env |
Dopodiché, attiva l'ambiente virtuale:
|
1 |
source sample_app_env/bin/activate |
L'ambiente virtuale è ora pronto e funzionante. Successivamente, useremo pip per installare Django e psycopg2 (un adattatore Python per PostgreSQL):
|
1 |
pip install django psycopg2 |
Infine, possiamo creare un nuovo progetto Django utilizzando gli strumenti di Django. Questo genererà una sottodirectory con lo stesso nome che ospiterà tutto il codice e uno script di gestione nella directory corrente:
|
1 |
django-admin startproject <project_name> . |
Passo 4. Configurazione del progetto Django
Il progetto Django ha tutti gli strumenti essenziali per funzionare come app web. Per integrarlo con il nostro database, dovremo apportare alcune modifiche ai suoi file di configurazione.
Apri il file settings.py in un editor di testo:
|
1 |
nano settings.py |
Scorri verso il basso fino alla sezione DATABASES. Per impostazione predefinita, è configurata per utilizzare SQLite:
Per il nostro scopo, modifica il codice come segue:
|
1 2 3 4 5 6 7 8 9 10 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '<db_name>', 'USER': '<db_user>', 'PASSWORD': '<db_user_password>', 'HOST': 'localhost', 'PORT': '', } } |
Qui diciamo a Django di utilizzare l'adattatore psycopg2 per la comunicazione con il database. Dichiariamo inoltre tutte le informazioni necessarie sul database, come il nome del database insieme al nome utente e alla password dell'utente dedicato.
Una volta terminato, salva il file e chiudi l'editor.
Passo 5. Migrazione del database
Django è configurato per accedere al nostro database PostgreSQL. Ora possiamo migrare la struttura dei dati nel nostro database. In Django, questo processo è noto come migrazione.
Per migrare le modifiche al database, richiama lo script di gestione manage.py:
|
1 |
python manage.py makemigrations |

|
1 |
python manage.py migrate |
Successivamente, crea un superuser per la nostra app Django:
|
1 |
python manage.py createsuperuser |
Questo account superuser fungerà da account amministratore per la nostra app Django.
Passaggio 6. Testare le modifiche
Finora abbiamo apportato diverse modifiche alla nostra app Django. È ora di verificare se tutto funziona come previsto. Lo verificheremo avviando l'app e accedendo al pannello di amministrazione.
Poiché stiamo sviluppando l'app Django in locale, avvieremo il server su localhost. Come da tradizione, lo lanceremo sulla porta 8000. Se hai un firewall configurato, questo deve consentire il traffico verso la porta 8000. Scopri di più su le basi di UFW qui.
Avvia il server Django:
|
1 |
python manage.py runserver localhost:8000 |
Accedi all'URL su un browser:
|
1 |
http://localhost:8000 |
Dovresti atterrare sulla pagina di installazione riuscita di Django. Per accedere alla pagina di amministrazione di Django, vai al seguente URL:
|
1 |
http://localhost:8000/admin |
Devi utilizzare il superuser che abbiamo creato per accedere:
Voilà! Siamo atterrati con successo sul pannello di amministrazione!
Una volta terminata l'esplorazione, premi Ctrl + C dalla console per arrestare il server Django.
Considerazioni finali
In questa guida, abbiamo dimostrato con successo come creare un'app Django di esempio e configurare PostgreSQL come backend. Sebbene SQLite sia generalmente più che sufficiente per soddisfare le esigenze durante lo sviluppo (e un uso leggero in produzione), la maggior parte dei progetti trarrà un enorme vantaggio dal passaggio a un DBMS più completo. PostgreSQL è un'ottima opzione per prestazioni e scalabilità.
Django è un framework web versatile che può funzionare con numerose tecnologie. Dai un'occhiata ad altre guide cloud che mostrano l'uso di Django:
- Configurazione di Django con PostgreSQL, Nginx e Gunicorn su Ubuntu 20.04
- Creazione di un'applicazione Django e Gunicorn con Docker su Ubuntu
- Come proteggere e scalare un'applicazione Django con Docker, Nginx e Let's Encrypt
- Creazione di un'app Django con connessione al database: un tutorial
Buona programmazione!






















Commenti
Ancora nessun commento. Scrivi il primo.