PostgreSQL er et af de bedste valg til et sikkert lagermiljø. Lær, hvordan du integrerer det med Django.
Tilføjelse af en database til din applikation sikrer dataintegritet og sikkerhed. PostgreSQL (Postgres) er et Structured Query Language (SQL) databasestyringssystem, som du måske vil overveje.
Postgres understøtter de fleste af de populære operativsystemer og er kompatibel med moderne programmeringssprog. Postgres håndterer også forskellige data- og dokumenttyper. Med høj efterspørgsel efter SQL-færdigheder er det en fordel at lære at konfigurere og bruge PostgreSQL.
Du lærer, hvordan du installerer, konfigurerer og bruger Postgres i en Django-applikation. Du vil også teste databasens funktionalitet ved at tilføje, gemme og hente data fra databasen.
1. Installer PostgreSQL på dit system
Følgende instruktioner forklarer hvordan man installerer Postgres på Ubuntu-operativsystemet. Hvis du er Windows-bruger, kan du følge dette trin-for-trin guide til at installere Postgres på Windows.
Før du installerer Postgres, skal du opdatere versionspakker og deres afhængigheder med følgende kommando:
$ sudo apt-get update
Installer derefter PostgreSQL med følgende kommando:
$ sudo apt-get install postgresql postgresql-contrib libpq-dev
Når du bliver bedt om at bekræfte installationen, skal du trykke på Y til Ja.
Opret forbindelse til serveren ved hjælp af følgende kommando:
$ sudo -i -u postgres
Og brug derefter databaseklienten til at bestemme den installerede Postgres-version.
Kør kommandoen psql --version.
postgres@nameofaccount:~$ psql --version
Outputtet viser din Postgres-version som vist nedenfor:
psql (PostgreSQL) 14.5 (Ubuntu 14.5-0ubuntu0.22.04.1)
Afslut Postgres-kontoen ved at køre Afslut kommando.
postgres@nameofaccount:~$ exit
2. Opret en database
Du skal oprette en database, som du vil forbinde til en Django-app. Naviger tilbage til Postgres-skallen og kør følgende kommandoer fortløbende.
sudo -i -u postgres
$ psql
Brug derefter klienten til at oprette en database på serveren.
postgres=# create database new_db;
Serveren returnerer udtrykket CREATE DATABASE, når den opretter en database. Du kan også tjekke pr liste over alle databaser i systemet med kommandoen \l.
postgres=# \l
Struktur af PostgreSQL
Som en typisk SQL-database gemmer PostgreSQL data i tabeller. Tabellerne repræsenterer forskellige varer/modeller i en applikation. Tabellerne har et fast antal kolonner og rækker.
Hver tabel har en bestemt kolonne kaldet en primær nøgle, en unik identifikator for hver række gemt i tabellen. En tabel kan også have en fremmednøgle, der forbinder den med en anden tabels primære nøgle.
Fremmednøglerne definerer relationerne mellem to tabeller.
Dernæst skal du oprette en Django-app og linke databasen. Men først, installer psychopg2 for at hjælpe med at forbinde appen og databasen.
3. Installer Django og Psychopg2 Library
For at forbinde Postgres til en Django-app skal du installere psychopg2 bibliotek. Dette er en Postgres-afhængighed, der hjælper med at forbinde og kommunikere med Django.
Kør følgende kommando for at installere psychopg2 og Django:
$ pipenv install psycopg2 Django
4. Opret en Django-app
Du skal oprette en Django-app, der bruger Postgres-databasen. Først skal du oprette et projekt kaldet myboma for at understøtte appen. Django projekterer automatisk genererede afhængigheder og applikationsindstillinger, der er nødvendige for at køre appen.
Opret en mappe kaldet Boma-ur og naviger til det med følgende kommandoer:
$ mkdir Boma-watch
$cd Boma-watch
Opret derefter et Django-projekt med følgende kommando:
$ django-admin startproject myboma .
Sørg for at tilføje punktum i slutningen af kommandoen, ellers vil Django oprette en ny mappe til at huse projektet.
Opret derefter en ny app kaldet boma med følgende kommando:
$ django startapp boma
Hvis du ikke har arbejdet med Django før, kan du det kom i gang med en begynderguide til Django. Efter at have kørt appen på browseren for at bekræfte, at den virker, vil du forbinde den til databasen i næste afsnit.
5. Tilslut database til Django-appen
Du vil nu forbinde din Django-app til den database, du har oprettet ved at bruge følgende trin:
Trin 1: Skift projektindstillinger for at bruge Postgres
Du skal ændre projektindstillingerne for at forbinde Django-appen til Postgres. Naviger til projektet settings.py fil. Skift derefter DATABASER indstillinger for at tilføje dine Postgres-konfigurationer.
Udskift BRUGER og ADGANGSKODE med din psql brugernavn og adgangskode.
#...
DATABASES = {
'default': {
'ENGINE':'django.db.backends.postgresql',
'NAME':'new_db',
'USER':'morine',
'PASSWORD':'password',
}
}
Trin 2: Opdater tidszonen
Dernæst i settings.py fil, skal du indstille Tidszone for at afspejle din placering. Django-projekter er forudkonfigureret med UTC-tidszonen.
TIME_ZONE = Africa/Nairobi
Trin 3: Opret en model
Lave en Profil model i din app. Du skal bruge denne modelklasse til at oprette tabeller i databasen for at gemme appens navn og biodata.
classProfile(models.Model):
name = models.CharField(max_length=30)
bio = models.TextField(max_length=100)def__str__(self):
return self.name
Trin 4: Start migrering
Kør følgende kommandoer for at starte migreringen:
(virtual)$ python manage.py makemigrations boma
(virtual)$ python manage.py migrate
En vellykket migrering vil se sådan ud:
python manage.py migrere kommandoen vælger appen fra INSTALLERET_APPS indstillinger > models.py-filer og opretter tabeller for hver model. Du har med succes forbundet Postgres til din applikation.
Nu kan du teste kommandoerne CREATE, READ, UPDATE og DELETE (CRUD) på din applikation.
6. Test CRUD-kommandoer på din app
Django's Python API vil gøre dig i stand til at udføre nogle CRUD-databaseoperationer. API'et forbinder funktionerne med modellerne, så du kan manipulere databasen.
Åbn Python-skallen i Django-projektet ved hjælp af følgende kommando:
(virtual)$ python manage.py shell
Kommandoen åbner en konsol, hvor du kan teste CRUD-operationerne.
Opret operation
Først skal du importere Profil model fra modeller modul ved hjælp af følgende kommando:
from boma.models import Profile
Opret derefter en forekomst af Profil klasse og videregive dine data.
prof1 = Profile.objects.create(name ='Ken',bio ='I am a Scorpio')
Gem derefter dataene i databasen.
prof1.save()
Læs Operation
Efter at have oprettet data i databasen og gemt dem, kan du forespørge på det for at hente de gemte data.
Brug Profile.objects.all() for at hente alle data i Profil tabel i databasen.
Profile.objects.all() #outputs
Du kan også hente et enkelt objekt ved hjælp af en primærnøgle eller pk. Disse er numre, der er tildelt hvert element, der er gemt i databasen.
Profile.objects.get(pk = 1) #outputs
Opdateringsoperation
Du kan opdatere de gemte data ved at bruge følgende kommando:
Profile.objects.filter(id = 1).update(name ='Kim';) #outputs 1
For at kontrollere, om navnet er opdateret, skal du udføre følgende kommando:
Profile.objects.filter(id = 1) #outputs
Slet handling
Du kan slette gemte elementer ved at bruge følgende kommando:
Profile.objects.filter(id = 1).delete() #outputs (1, {app.Profile: 1})
For at bekræfte sletningen skal du køre følgende kommando:
Profile.objects.filter(id = 1) #outputs
Du kan se, at forespørgselssættet er tomt, hvilket indikerer, at dataene ikke længere er i databasen.
Hvorfor bruge PostgreSQL?
Postgres er en af de mest avancerede SQL-databaser. Dens open source builds sikrer konstante præstationsforbedringer.
Det er nemmere at administrere arbejdsbelastninger, og databasesortering bliver bedre med hver udgivelse. En af grundene til, at Postgres er populær, er fordi den er kompatibel med de fleste moderne programmeringssprog og operativsystemer.