Dela via


Snabbstart: Använda Python för att ansluta och fråga efter data i Azure Database for PostgreSQL – enskild server

GÄLLER FÖR: Azure Database for PostgreSQL – enskild server

Viktigt!

Azure Database for PostgreSQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till Azure Database for PostgreSQL – flexibel server. Mer information om hur du migrerar till Azure Database for PostgreSQL – flexibel server finns i Vad händer med Azure Database for PostgreSQL – enskild server?.

I den här snabbstarten får du lära dig hur du ansluter till databasen i Azure Database for PostgreSQL – enskild server och kör SQL-instruktioner för att fråga med hjälp av Python på macOS, Ubuntu Linux eller Windows.

Dricks

Om du vill skapa ett Django-program med PostgreSQL kan du gå till självstudien Distribuera en Django-webbapp med PostgreSQL .

Förutsättningar

För den här snabbstarten behöver du:

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.

  • Skapa en enskild Azure Database for PostgreSQL-server med Hjälp av Azure-portalen
    eller Azure CLI om du inte har något.

  • Baserat på om du använder offentlig eller privat åtkomst slutför du en av åtgärderna nedan för att aktivera anslutningen.

    Åtgärd Anslutningsmetod Instruktionsguide
    Konfigurera brandväggsregler Offentliga Portal
    CLI
    Konfigurera tjänstslutpunkt Offentliga Portal
    CLI
    Konfigurera privat länk Privat Portal
    CLI
  • Python 2.7 eller 3.6+.

  • Senaste pip-paketinstallationsprogrammet .

  • Installera psycopg2 med hjälp av pip install psycopg2-binary i ett terminal- eller kommandotolkfönster. Mer information finns i installera psycopg2.

Hämta information om databasanslutning

Anslutning till en Azure Database for PostgreSQL-databas kräver det fullständigt kvalificerade servernamnet och inloggningsuppgifterna. Du kan hämta den här informationen från Azure-portalen.

  1. I Azure-portalen söker du efter och väljer ditt Azure Database for PostgreSQL-servernamn.

  2. På serverns översiktssida kopierar du det fullständigt kvalificerade servernamnet och administratörsanvändarnamnet. Det fullständigt kvalificerade servernamnet är alltid av formatet< my-server-name.postgres.database.azure.com>, och administratörsanvändarnamnet är alltid av formatet <my-admin-username>@<my-server-name.>

    Du behöver också ditt administratörslösenord. Om du glömmer det kan du återställa det från den här sidan.

    Azure Database for PostgreSQL-servernamn

Viktigt!

Ersätt följande variabelvärden:

  • <server-name> och <admin-username> med de värden som du kopierade från Azure-portalen.
  • <admin-password> med serverlösenordet.
  • <database-name> en standarddatabas med namnet postgres skapades automatiskt när du skapade servern. Du kan byta namn på databasen eller skapa en ny databas med hjälp av SQL-kommandon.

Steg 1: Ansluta och infoga data

Följande kodexempel ansluter till din Azure Database for PostgreSQL-databas med hjälp av

import psycopg2

# Update connection string information

host = "<server-name>"
dbname = "<database-name>"
user = "<admin-username>"
password = "<admin-password>"
sslmode = "require"

# Construct connection string

conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode)
conn = psycopg2.connect(conn_string)
print("Connection established")

cursor = conn.cursor()

# Drop previous table of same name if one exists

cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed)")

# Create a table

cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table")

# Insert some data into the table

cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted 3 rows of data")

# Clean up

conn.commit()
cursor.close()
conn.close()

När koden körs genererar den följande utdata:

Kommandoradsutdata

Steg 2: Läsa data

Följande kodexempel ansluter till din Azure Database for PostgreSQL-databas och använder

  • cursor.execute med SQL SELECT-instruktionen för att läsa data.
  • cursor.fetchall() accepterar en fråga och returnerar en resultatuppsättning som itererar över med hjälp av

# Fetch all rows from table

cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()

# Print all rows

for row in rows:
    print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))

Steg 3: Uppdatera data

I följande kodexempel används cursor.execute med SQL UPDATE-instruktionen för att uppdatera data.


# Update a data row in the table

cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
print("Updated 1 row of data")

Steg 5: Ta bort data

I följande kodexempel körs cursor.execute med SQL DELETE-instruktionen för att ta bort ett lagerobjekt som du tidigare infogade.


# Delete data row from table

cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")

Rensa resurser

Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med följande kommando:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Nästa steg