Schnellstart: Verwenden von Python zum Herstellen einer Verbindung mit einem Azure Database for PostgreSQL-Einzelserver sowie zum Abfragen von Daten

GILT FÜR: Azure Database for PostgreSQL – Single Server

Wichtig

Azure Database for PostgreSQL – Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for PostgreSQL – Flexibler Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for PostgreSQL – Flexibler Server finden Sie unter Was geschieht mit Azure Database for PostgreSQL – Einzelserver?.

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine Verbindung mit der Datenbank auf dem Azure Database for PostgreSQL-Einzelserver herstellen und SQL-Anweisungen zum Abfragen unter Verwendung von Python unter macOS, Ubuntu Linux oder Windows ausführen.

Tipp

Wenn Sie eine Django-Anwendung mit PostgreSQL erstellen möchten, schauen Sie sich das Tutorial Bereitstellen einer Django-Web-App mit PostgreSQL an.

Voraussetzungen

Für diese Schnellstartanleitung benötigen Sie Folgendes:

Abrufen von Datenbankverbindungsinformationen

Für die Verbindungsherstellung mit einer Azure Database for PostgreSQL-Datenbank sind der vollqualifizierte Servername und Anmeldeinformationen erforderlich. Diese Informationen finden Sie im Azure-Portal.

  1. Suchen Sie im Azure-Portal nach dem Namen Ihres Azure Database for PostgreSQL-Servers, und wählen Sie ihn aus.

  2. Kopieren Sie auf der Übersichtsseite des Servers unter Servername den vollqualifizierten Servernamen und unter Administratorbenutzername den Administratorbenutzernamen. Der vollqualifizierte Servername hat immer das Format <Servername>.postgres.database.azure.com. Der Administratorbenutzername hat immer das Format <Administratorbenutzername>@<Servername>.

    Darüber hinaus benötigen Sie Ihr Administratorkennwort. Sollten Sie es vergessen, können Sie es auf dieser Seite zurücksetzen.

    Azure Database for PostgreSQL-Servername

Wichtig

Ersetzen Sie die folgenden Werte:

  • <server-name> und <admin-username> durch die Werte, die Sie aus dem Azure-Portal kopiert haben.
  • <admin-password> durch Ihr Serverkennwort.
  • <database-name>: Bei der Servererstellung wurde automatisch eine Standarddatenbank namens postgres erstellt. Sie können diese Datenbank umbenennen oder mithilfe von SQL-Befehlen eine neue Datenbank erstellen.

Schritt 1: Herstellen einer Verbindung und Einfügen von Daten

Im unten gezeigten Codebeispiel wird mithilfe der folgenden Funktion eine Verbindung mit Ihrer Azure Database for PostgreSQL-Datenbank hergestellt:

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

Nach erfolgreicher Ausführung generiert der Code die folgende Ausgabe:

Befehlszeilenausgabe

Schritt 2: Lesen von Daten

Im unten gezeigten Codebeispiel wird eine Verbindung mit Ihrer Azure Database for PostgreSQL-Datenbank hergestellt. Dazu wird Folgendes verwendet:

  • cursor.execute mit der SQL-Anweisung SELECT zum Lesen der Daten
  • cursor.fetchall() akzeptiert eine Abfrage und gibt ein Resultset zurück, das mithilfe von Folgendem durchlaufen werden kann:

# 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])))

Schritt 3: Aktualisieren von Daten

Im folgenden Codebeispiel wird cursor.execute mit der SQL-Anweisung UPDATE zum Aktualisieren der Daten verwendet.


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

Schritt 5: Löschen von Daten

Im folgenden Codebeispiel wird cursor.execute mit der SQL-Anweisung DELETE ausgeführt, um ein zuvor eingefügtes Bestandselement zu löschen.


# Delete data row from table

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

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe mit dem folgenden Befehl, um alle in dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen:

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

Nächste Schritte