PostgreSQL è una delle scelte migliori per un ambiente di archiviazione sicuro. Scopri come integrarlo con Django.

L'aggiunta di un database all'applicazione garantisce l'integrità e la sicurezza dei dati. PostgreSQL (Postgres) è un sistema di gestione di database SQL (Structured Query Language) che potresti prendere in considerazione.

Postgres supporta la maggior parte dei sistemi operativi più diffusi ed è compatibile con i moderni linguaggi di programmazione. Postgres gestisce anche vari tipi di dati e documenti. Con le competenze SQL molto richieste, imparare a configurare e utilizzare PostgreSQL è un vantaggio.

Imparerai come installare, configurare e utilizzare Postgres in un'applicazione Django. Testerai anche la funzionalità del database aggiungendo, archiviando e recuperando i dati dal database.

1. Installa PostgreSQL sul tuo sistema

Le seguenti istruzioni spiegano come installare Postgres sul sistema operativo Ubuntu. Se sei un utente Windows, puoi seguire questo guida passo passo per installare Postgres su Windows.

instagram viewer

Prima di installare Postgres, aggiorna i pacchetti di versione e le loro dipendenze con il seguente comando:

$ sudo apt-get update

Successivamente, installa PostgreSQL con il seguente comando:

$ sudo apt-get install postgresql postgresql-contrib libpq-dev

Quando viene richiesto di confermare l'installazione, premere Y per .

Connettiti al server usando il seguente comando:

$ sudo -i -u postgres

E quindi utilizzare il client del database per determinare la versione di Postgres installata.

Eseguire il comando psql --versione.

postgres@nameofaccount:~$ psql --version

L'output mostrerà la tua versione di Postgres come mostrato di seguito:

psql (PostgreSQL) 14.5 (Ubuntu 14.5-0ubuntu0.22.04.1)

Esci dall'account Postgres eseguendo il file Uscita comando.

postgres@nameofaccount:~$ exit

2. Crea una banca dati

Devi creare un database che collegherai a un'app Django. Torna alla shell Postgres ed esegui i seguenti comandi consecutivamente.

sudo -i -u postgres
$ psql

Quindi utilizzare il client per creare un database sul server.

postgres=# create database new_db;

Il server restituisce il termine CREATE DATABASE quando crea un database. Puoi anche controllare entro elencando tutti i database nel sistema con il comando \l.

postgres=# \l

Struttura di PostgreSQL

Come un tipico database SQL, PostgreSQL memorizza i dati nelle tabelle. Le tabelle rappresentano diversi elementi/modelli in un'applicazione. Le tabelle hanno un numero fisso di colonne e righe.

Ogni tabella ha una particolare colonna chiamata chiave primaria, un identificatore univoco per ogni riga memorizzata nella tabella. Una tabella potrebbe anche avere una chiave esterna che la collega alla chiave primaria di un'altra tabella.

Le chiavi esterne definiscono le relazioni tra due tabelle.

Successivamente, è necessario creare un'app Django e collegare il database. Ma prima, installa psycopg2 per aiutare a connettere l'app e il database.

3. Installa la libreria Django e Psycopg2

Per connettere Postgres a un'app Django, è necessario installare il file psycopg2 biblioteca. Questa è una dipendenza Postgres che aiuta a connettersi e comunicare con Django.

Eseguire il comando seguente per installare psycopg2 E Django:

$ pipenv install psycopg2 Django

4. Crea un'app Django

Devi creare un'app Django che utilizzerà il database Postgres. Innanzitutto, crea un progetto chiamato myboma per supportare l'app. I progetti Django generano automaticamente le dipendenze e le impostazioni dell'applicazione necessarie per eseguire l'app.

Crea una cartella chiamata Boma-orologio e naviga verso di esso con i seguenti comandi:

$ mkdir Boma-watch
$cd Boma-watch

Quindi, crea un progetto Django con il seguente comando:

$ django-admin startproject myboma .

Assicurati di aggiungere il punto alla fine del comando, altrimenti Django creerà una nuova cartella per ospitare il progetto.

Quindi, crea una nuova app chiamata boma con il seguente comando:

$ django startapp boma

Se non hai mai lavorato con Django, puoi farlo inizia con una guida per principianti a Django. Dopo aver eseguito l'app sul browser per verificare che funzioni, la collegherai al database nella sezione successiva.

5. Collega il database all'app Django

Ora collegherai la tua app Django al database che hai creato utilizzando i seguenti passaggi:

Passaggio 1: modifica le impostazioni del progetto per utilizzare Postgres

Devi modificare le impostazioni del progetto per connettere l'app Django a Postgres. Vai al progetto impostazioni.py file. Quindi, cambia il BANCHE DATI settings per aggiungere le configurazioni di Postgres.

Sostituisci il UTENTE E PAROLA D'ORDINE con il tuo psql nome utente e password.

#...
DATABASES = {
'default': {
'ENGINE':'django.db.backends.postgresql',
'NAME':'new_db',
'USER':'morine',
'PASSWORD':'password',
}
}

Passaggio 2: aggiorna il fuso orario

Successivamente, nel impostazioni.py file, imposta il file Fuso orario per riflettere la tua posizione. I progetti Django sono preconfigurati con il fuso orario UTC.

TIME_ZONE = Africa/Nairobi

Passaggio 3: creare un modello

Creare un Profilo modello nella tua app. Utilizzerai questa classe del modello per creare tabelle nel database per archiviare il nome dell'app e i dati biografici.

classProfile(models.Model):
name = models.CharField(max_length=30)
bio = models.TextField(max_length=100)

def__str__(self):
return self.name

Passaggio 4: avviare la migrazione

Eseguire i seguenti comandi per avviare la migrazione:

(virtual)$ python manage.py makemigrations boma 
(virtual)$ python manage.py migrate

Una migrazione riuscita sarà simile a questa:

python manage.py migrare Il comando seleziona l'app dal file APP_INSTALLATE settings > files models.py e crea tabelle per ogni modello. Hai connesso con successo Postgres alla tua applicazione.

Ora puoi testare i comandi CREATE, READ, UPDATE e DELETE (CRUD) sulla tua applicazione.

6. Testa i comandi CRUD sulla tua app

L'API Python di Django ti consentirà di eseguire alcune operazioni del database CRUD. L'API collega le funzioni con i modelli per consentire di manipolare il database.

Apri la shell Python nel progetto Django usando il seguente comando:

(virtual)$ python manage.py shell

Il comando aprirà una console in cui è possibile testare le operazioni CRUD.

Crea operazione

Innanzitutto, importa il file Profilo modello dal Modelli modulo utilizzando il seguente comando:

 from boma.models import Profile

Quindi, crea un'istanza di Profilo class e passa i tuoi dati.

 prof1 = Profile.objects.create(name ='Ken',bio ='I am a Scorpio')

Successivamente, salva i dati nel database.

prof1.save()

Leggi Operazione

Dopo aver creato i dati nel database e averli salvati, è possibile interrogarli per recuperare i dati salvati.

Usa il Profilo.oggetti.tutto() per recuperare tutti i dati nel file Profilo tabella nel database.

Profile.objects.all() #outputs 

Puoi anche recuperare un singolo oggetto usando a chiave primaria O pk. Questi sono i numeri assegnati a ciascun elemento salvato nel database.

Profile.objects.get(pk = 1) #outputs 

Operazione di aggiornamento

È possibile aggiornare i dati salvati utilizzando il seguente comando:

Profile.objects.filter(id = 1).update(name ='Kim';) #outputs 1

Per verificare se il nome è stato aggiornato, eseguire il seguente comando:

Profile.objects.filter(id = 1) #outputs 

Elimina operazione

È possibile eliminare gli elementi salvati utilizzando il seguente comando:

Profile.objects.filter(id = 1).delete() #outputs (1, {app.Profile: 1})

Per confermare l'eliminazione eseguire il seguente comando:

Profile.objects.filter(id = 1) #outputs 

Puoi vedere che il set di query è vuoto, a indicare che i dati non sono più nel database.

Perché usare PostgreSQL?

Postgres è uno dei database SQL più avanzati. Le sue build open source garantiscono costanti miglioramenti delle prestazioni.

La gestione dei carichi di lavoro è più semplice e l'ordinamento dei database migliora a ogni versione. Uno dei motivi per cui Postgres è popolare è perché è compatibile con la maggior parte dei moderni linguaggi di programmazione e sistemi operativi.