PostgreSQL är ett av de bästa valen för en säker lagringsmiljö. Lär dig hur du integrerar det med Django.

Att lägga till en databas i din applikation säkerställer dataintegritet och säkerhet. PostgreSQL (Postgres) är ett strukturerat frågespråk (SQL) databashanteringssystem som du kanske vill överväga.

Postgres stöder de flesta av de populära operativsystemen och är kompatibel med moderna programmeringsspråk. Postgres hanterar även olika data- och dokumenttyper. Med hög efterfrågan på SQL-kunskaper är det en fördel att lära sig konfigurera och använda PostgreSQL.

Du lär dig hur du installerar, konfigurerar och använder Postgres i en Django-applikation. Du kommer också att testa databasens funktionalitet genom att lägga till, lagra och hämta data från databasen.

1. Installera PostgreSQL på ditt system

Följande instruktioner förklarar hur man installerar Postgres på operativsystemet Ubuntu. Om du är en Windows-användare kan du följa detta steg-för-steg-guide för att installera Postgres på Windows.

instagram viewer

Innan du installerar Postgres, uppdatera versionspaket och deras beroenden med följande kommando:

$ sudo apt-get update

Installera sedan PostgreSQL med följande kommando:

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

När du uppmanas att bekräfta installationen, tryck Y för Ja.

Anslut till servern med följande kommando:

$ sudo -i -u postgres

Och använd sedan databasklienten för att avgöra vilken Postgres-version som är installerad.

Kör kommandot psql --version.

postgres@nameofaccount:~$ psql --version

Utdata kommer att visa din Postgres-version enligt nedan:

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

Avsluta Postgres-kontot genom att köra utgång kommando.

postgres@nameofaccount:~$ exit

2. Skapa en databas

Du måste skapa en databas som du ska ansluta till en Django-app. Navigera tillbaka till Postgres-skalet och kör följande kommandon i följd.

sudo -i -u postgres
$ psql

Använd sedan klienten för att skapa en databas på servern.

postgres=# create database new_db;

Servern returnerar termen CREATE DATABASE när den skapar en databas. Du kan också kolla in listar alla databaser i systemet med kommandot \l.

postgres=# \l

Struktur för PostgreSQL

Liksom en typisk SQL-databas lagrar PostgreSQL data i tabeller. Tabellerna representerar olika artiklar/modeller i en applikation. Tabellerna har ett fast antal kolumner och rader.

Varje tabell har en särskild kolumn som kallas en primärnyckel, en unik identifierare för varje rad som lagras i tabellen. En tabell kan också ha en främmande nyckel som kopplar den till en annan tabells primärnyckel.

De främmande nycklarna definierar relationerna mellan två tabeller.

Därefter måste du skapa en Django-app och länka databasen. Men först, installera psychopg2 för att hjälpa till att koppla appen och databasen.

3. Installera Django och Psychopg2 Library

För att ansluta Postgres till en Django-app måste du installera psychopg2 bibliotek. Detta är ett Postgres-beroende som hjälper till att ansluta och kommunicera med Django.

Kör följande kommando för att installera psychopg2 och Django:

$ pipenv install psycopg2 Django

4. Skapa en Django-app

Du måste skapa en Django-app som använder Postgres-databasen. Skapa först ett projekt som heter myboma för att stödja appen. Django projekterar automatiskt genererade beroenden och programinställningar som behövs för att köra appen.

Skapa en mapp som heter Boma-klocka och navigera till den med följande kommandon:

$ mkdir Boma-watch
$cd Boma-watch

Skapa sedan ett Django-projekt med följande kommando:

$ django-admin startproject myboma .

Se till att lägga till punkten i slutet av kommandot, annars skapar Django en ny mapp för projektet.

Skapa sedan en ny app som heter boma med följande kommando:

$ django startapp boma

Om du inte har jobbat med Django tidigare så kan du det kom igång med en nybörjarguide till Django. Efter att ha kört appen i webbläsaren för att bekräfta att den fungerar, kommer du att ansluta den till databasen i nästa avsnitt.

5. Anslut databas till Django-appen

Du kommer nu att ansluta din Django-app till databasen du skapade med följande steg:

Steg 1: Ändra projektinställningar för att använda Postgres

Du måste ändra projektinställningarna för att ansluta Django-appen till Postgres. Navigera till projektet settings.py fil. Ändra sedan DATABASER inställningar för att lägga till dina Postgres-konfigurationer.

Ersätt ANVÄNDARE och LÖSENORD med din psql användarnamn och lösenord.

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

Steg 2: Uppdatera tidszonen

Nästa, i settings.py fil, ställ in Tidszon för att återspegla din plats. Django-projekt är förkonfigurerade med UTC-tidszonen.

TIME_ZONE = Africa/Nairobi

Steg 3: Skapa en modell

Skapa en Profil modell i din app. Du kommer att använda den här modellklassen för att skapa tabeller i databasen för att lagra appens namn och biodata.

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

def__str__(self):
return self.name

Steg 4: Starta migreringen

Kör följande kommandon för att starta migreringen:

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

En framgångsrik migrering kommer att se ut så här:

python manage.py migrera kommandot väljer appen från INSTALLERADE_APPAR inställningar > models.py-filer och skapar tabeller för varje modell. Du har framgångsrikt kopplat Postgres till din applikation.

Nu kan du testa kommandona CREATE, READ, UPDATE och DELETE (CRUD) på din applikation.

6. Testa CRUD-kommandon på din app

Djangos Python API gör att du kan utföra vissa CRUD-databasoperationer. API: n kopplar ihop funktionerna med modellerna så att du kan manipulera databasen.

Öppna Python-skalet i Django-projektet med följande kommando:

(virtual)$ python manage.py shell

Kommandot öppnar en konsol där du kan testa CRUD-operationerna.

Skapa operation

Importera först Profil modell från modeller modul med följande kommando:

 from boma.models import Profile

Skapa sedan en instans av Profil klass och skicka in dina uppgifter.

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

Spara sedan data i databasen.

prof1.save()

Läs Operation

När du har skapat data i databasen och sparat den kan du fråga den för att hämta sparad data.

Använd Profile.objects.all() för att hämta all data i Profil tabell i databasen.

Profile.objects.all() #outputs 

Du kan också hämta ett enstaka objekt med hjälp av en primärnyckel eller pk. Dessa är nummer som tilldelats varje objekt som sparats i databasen.

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

Uppdateringsoperation

Du kan uppdatera sparad data med följande kommando:

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

För att kontrollera om namnet har uppdaterats, kör följande kommando:

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

Ta bort operation

Du kan ta bort sparade objekt med följande kommando:

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

För att bekräfta raderingen kör följande kommando:

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

Du kan se att frågeuppsättningen är tom, vilket indikerar att data inte längre finns i databasen.

Varför använda PostgreSQL?

Postgres är en av de mest avancerade SQL-databaserna. Dess öppna källkodsbyggen säkerställer ständiga prestandaförbättringar.

Det är enklare att hantera arbetsbelastningar och databassortering blir bättre för varje version. En av anledningarna till att Postgres är populärt är att det är kompatibelt med de flesta moderna programmeringsspråk och operativsystem.