Hur man ansluter och använder PostgreSQL i Python

Viktiga takeaways

  • Ladda ner och installera PostgreSQL för ditt operativsystem, använd sedan psycopg2 för att ansluta till en PostgreSQL-databas från Python.
  • Använd pgAdmin4 för att hämta serveruppgifter för att ansluta till en Postgres-server från Python.
  • Använd SQL-kommandon i Python för att skapa, kontrollera eller släppa en PostgreSQL-databas.

Om du skriver ett Python-program som behöver komma åt data från en Postgres-databas, måste du veta hur du kopplar ihop de två. När du har upprättat en anslutning kan du använda den för att köra frågor och hämta eller spara data.

Ladda ner och installera PostgreSQL

PostgreSQL är ett utmärkt val för dina programmeringsprojekt. Du kan ladda ner och installera den version som krävs av PostgreSQL enligt ditt operativsystem. Postgres är tillgänglig för nedladdning på standardoperativsystem som Windows, macOS och Ubuntu Linux.

Installationsprocessen kommer att skilja sig från OS till OS, så du bör följa installationsstegen för att säkerställa en smidig installationsupplevelse.

Installera det obligatoriska biblioteket

Du kan använda psycopg2-biblioteket för att ansluta till en PostgreSQL-databas från Python. Kör det här kommandot i Python-tolken för att kontrollera om biblioteket är installerat:

 import psycopg2 

Om du får ett felmeddelande (till exempel ”Ingen modul med namnet ’psycopg2′”) installerar du biblioteket med det här kommandot:

 pip install psycopg2 

PIP är en Python-pakethanterare som du kan installera på Windows, Mac eller Linux. Det underlättar komplexiteten att installera Python-paket.

Hämta referenser med pgAdmin4

Du kan använda appen pgAdmin4 för att hantera dina Postgres-databaser i en GUI-miljö. Du kanske har installerat det samtidigt som du installerade Postgres, men du kan ladda ner pgAdmin4 och installera den separat om det behövs.

Så här kan du använda pgAdmin4 för att få dina serveruppgifter:

  • Öppna pgAdmin4 från programmenyn.
  • Klicka på menyn Servers till vänster på din applikationsskärm.
  • Ange Postgres-lösenordet som du angav under installationen.
  • När du ansluter till servern högerklickar du på PostgreSQL 16-objektet och väljer sedan Egenskaper.
  • Klicka på Anslutning i dialogrutan Egenskaper.
  • Anteckna värdnamn, portnummer och användarnamn.
  • Anslut till Postgres-servern

    Med dina referenser i handen kan du använda psycopg2-biblioteket för att upprätta en anslutning till din Postgres-server. För att göra det måste du använda anslutningsfunktionen enligt följande:

     conn = psycopg2.connect(host="localhost", port="5432", user="postgres", password='your password here') 

    Därefter måste du använda markörfunktionen för att utföra Postgres-kommandon i en Python-miljö:

     cur = conn.cursor() 

    Slutligen kan du ställa in auto-commit-flaggan för att säkerställa att Python exekverar och begår varje kodsats. På så sätt behöver du inte skicka separata commit-satser efter varje kodrad.

     conn.set_session(autocommit = True) 

    Du kan köra dessa uttalanden på en gång för att ansluta till en lokal instans av din Postgres-server.

    Hur man skapar en Postgres-databas

    En Postgres-databas spelar en avgörande roll för att lagra en samling relaterade tabeller. Skapa en ny med kommandot CREATE DATABASE SQL som du kan skicka till markörobjektets exekveringsmetod:

     try:
        cur.execute('''CREATE DATABASE DB_NAME''')
    except psycopg2.Error as e:
        print(e)

    Du bör alltid vara noga med att hantera eventuella undantag som kan uppstå. Det här exemplet skriver helt enkelt ut alla fel som uppstår, men i produktionskoden vill du vidta lämpliga åtgärder.

    Kontrollerar databasen i pgAdmin4

    När du kör ovanstående fråga kan du kontrollera att den har skapat en databas med pgAdmin4. Gå över till gränssnittet, uppdatera den befintliga listan med databaser och leta efter den nya databasen.

    Till exempel, om du skapar en exempeldatabas som heter musik med hjälp av ovanstående fråga, bör den visas i listan över databaser under kategorin Postgres16 > Databaser.

    Hur man släpper en Postgres-databas

    Om du inte vill behålla en specifik databas kan du använda följande kommando för att ta bort (eller ”släppa”) den:

     try:
        cur.execute('''DROP DATABASE MUSIC''')
    except psycopg2.Error as e:
        print(e)

    Istället för skapa kommandot måste du använda kommandot drop. Efter körning kommer du inte att se databasen i fråga.