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
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:
Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
Erstellen Sie einen Azure Database for PostgreSQL-Einzelserver unter Verwendung des Azure-Portals
oder der Azure CLI, wenn Sie noch keinen besitzen.Je nachdem, ob Sie öffentlichen oder privaten Zugriff verwenden, führen Sie EINE der folgenden Aktionen aus, um Konnektivität herzustellen:
Action Konnektivitätsmethode Schrittanleitung Konfigurieren von Firewallregeln Öffentlich Portal
BEFEHLSZEILENSCHNITTSTELLE (CLI)Konfigurieren des Dienstendpunkts Öffentlich Portal
BEFEHLSZEILENSCHNITTSTELLE (CLI)Konfigurieren von Private Link Privat Portal
BEFEHLSZEILENSCHNITTSTELLE (CLI)Python 2.7 bzw. 3.6 oder höher
Aktuelles pip-Paketinstallationsprogramm.
Installieren Sie psycopg2 mithilfe von
pip install psycopg2-binary
in einem Terminal- oder Eingabeaufforderungsfenster. Weitere Informationen finden Sie unter Installieren vonpsycopg2
.
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.
Suchen Sie im Azure-Portal nach dem Namen Ihres Azure Database for PostgreSQL-Servers, und wählen Sie ihn aus.
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.
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:
- psycopg2.connect, und Daten werden mit der SQL-Anweisung INSERT geladen.
- Die Funktion cursor.execute führt die SQL-Abfrage für die Datenbank aus.
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:
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