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

I den här snabbstarten lär du dig att ansluta till databasen på en enskild Azure Database for PostgreSQL-server och köra SQL-uttryck för att köra frågor med Python på macOS, Ubuntu Linux eller Windows.

Tips

Om du vill skapa ett Django-program med PostgreSQL går du självstudiekursen Distribuera en Django-webbapp med PostgreSQL.

Förutsättningar

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

Hämta information om databasanslutning

För att kunna ansluta till Azure Database for PostgreSQL databas krävs det fullständigt kvalificerade servernamnet och inloggningsuppgifterna. Du kan hämta den här informationen från Azure Portal.

  1. I Azure Portaldu efter och väljer Azure Database for PostgreSQL servernamn.

  2. På serverns översiktssida kopierar du det fullständigt kvalificerade servernamnet och administratörsnamnet. Det fullständigt kvalificerade servernamnet har alltid formen <my-server-name> .postgres.database.azure.com och administratörsnamnet är alltid i formuläret <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 värden:

  • <server-name> och <admin-username> med de värden som du kopierade från Azure Portal.
  • <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 SQL kommandon.

Steg 1: Anslut och infoga data

Följande kodexempel ansluter till din Azure Database for PostgreSQL databas med

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

Har du problem? Berätta för oss

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 för att iterera ö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])))


Har du problem? Berätta för oss

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")

Har du problem? Berätta för oss

Steg 5: Ta bort data

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


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

Har du problem? Berätta för oss

Rensa resurser

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

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

Nästa steg

Hittar du inte det du letar efter? Berätta för oss.