Torna al blog

Utilizzo di PostgreSQL con Django su Ubuntu 21.04 Server

Utilizzo di PostgreSQL con Django su Ubuntu 21.04 Server

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.

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:

Using PostgreSQL with Django 1

Successivamente, installa i pacchetti:

Using PostgreSQL with Django 2

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 :

Dovresti trovarti in una nuova sessione di shell con l'utente postgres. Quindi, apri una shell di PostgreSQL:

Ora creeremo un database dedicato per la nostra app Django. Si consiglia di assegnargli un nome corrispondente a quello dell'app Django:

Successivamente, creeremo un utente di database dedicato. Useremo questo utente per accedere al database dedicato a Django:

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:

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:

Using PostgreSQL with Django 4

Infine, concedi al nuovo utente i permessi completi sul database dedicato a Django:

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:

Using PostgreSQL with Django 5

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:

Cambia la directory attiva corrente e stabilisci l'ambiente virtuale:

Dopodiché, attiva l'ambiente virtuale:

L'ambiente virtuale è ora pronto e funzionante. Successivamente, useremo pip per installare Django e psycopg2 (un adattatore Python per PostgreSQL):

Using PostgreSQL with Django 6

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:

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:

Scorri verso il basso fino alla sezione DATABASES. Per impostazione predefinita, è configurata per utilizzare SQLite:

Per il nostro scopo, modifica il codice come segue:

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:


Using PostgreSQL with Django 7

Successivamente, crea un superuser per la nostra app Django:

Using PostgreSQL with Django 8

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:

Accedi all'URL su un browser:

Using PostgreSQL with Django 9

Dovresti atterrare sulla pagina di installazione riuscita di Django. Per accedere alla pagina di amministrazione di Django, vai al seguente URL:

Using PostgreSQL with Django 10

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:

Buona programmazione!

author

Preslav Dobrev

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.