Quickstart: Python gebruiken om verbinding te maken en query's uit te voeren op gegevens in Azure Database for PostgreSQL - Enkele server
VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server
Belangrijk
Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.
In deze quickstart leert u hoe u verbinding kunt maken met de database in een enkele Azure Database for PostgreSQL-server, en SQL-instructies kunt gebruiken om query's uit te voeren met behulp van Python in macOS, Ubuntu Linux of Windows.
Tip
Als u een Django-toepassing met PostgreSQL wilt maken, raadpleegt u de zelfstudie Tutorial: Deploy a Django web app with PostgreSQL (Engelstalig).
Vereisten
Voor deze quickstart hebt u het volgende nodig:
Een Azure-account met een actief abonnement. Gratis een account maken
Maak een enkele Azure Database for PostgreSQL-server met behulp van Azure Portal
of Azure CLI, als u er nog geen hebt.Voltooi EEN van de onderstaande acties om connectiviteit in te schakelen, afhankelijk van of u openbare toegang of privétoegang hebt.
Actie Verbindingsmethode Instructiegids Firewallregels configureren Openbaar Portal
CLIService-eindpunt configureren Openbaar Portal
CLIPrivékoppeling configureren Privé Portal
CLIPython 2.7 of 3.6+.
Nieuwste PIP-pakketinstallatieprogramma.
Installeer psycopg2 met behulp van
pip install psycopg2-binary
in een terminal of opdrachtpromptvenster. Ziepsycopg2
installeren voor meer informatie.
De verbindingsgegevens voor de database ophalen
Voor het maken van verbinding met een Azure Database for PostgreSQL-database zijn de volledig gekwalificeerde servernaam en aanmeldingsreferenties vereist. U kunt deze informatie ophalen uit Azure Portal.
Zoek en selecteer in Azure Portal uw Azure Database for PostgreSQL-servernaam.
Kopieer op de pagina Overzicht van de server de volledig gekwalificeerde servernaam en de gebruikersnaam met beheerdersrechten. De volledig gekwalificeerde servernaam is altijd van het formulier <my-server-name.postgres.database.azure.com> en de Beheer gebruikersnaam is altijd van het formulier <mijn-admin-username>@<my-server-name>.
U hebt ook uw beheerderswachtwoord nodig. Als u deze vergeten bent, kunt u deze opnieuw instellen op deze pagina.
Belangrijk
Vervang de volgende waarden:
<server-name>
en<admin-username>
door de waarden die u hebt gekopieerd uit Azure Portal.<admin-password>
door uw serverwachtwoord.<database-name>
een standaarddatabase met de naam postgres is automatisch gemaakt tijdens het maken de server. U kunt de naam van de database wijzigen of een nieuwe database maken met behulp van SQL-opdrachten.
Stap 1: gegevens Verbinding maken en invoegen
Met het volgende codevoorbeeld wordt uw Azure Database for PostgreSQL-database verbonden met behulp van
- de functie psycopg2.connect, en worden gegevens geladen met een SQL INSERT-instructie.
- Met de functie cursor.execute wordt de SQL-query uitgevoerd op de database.
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()
Wanneer de code wordt uitgevoerd, wordt de volgende uitvoer gegenereerd:
Stap 2: Gegevens lezen
Met het volgende codevoorbeeld wordt uw Azure Database for PostgreSQL-database verbonden en maakt deze gebruik van
- cursor.execute met de SQL SELECT-instructie om gegevens te lezen.
- Met cursor.fetchall() wordt een query geaccepteerd en een resultatenset geretourneerd voor herhaling, met behulp van
# 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])))
Stap 3: Gegevens bijwerken
In het volgende codevoorbeeld wordt cursor.execute gebruikt met de SQL UPDATE-instructie om gegevens bij te werken.
# 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")
Stap 5: Gegevens verwijderen
Met het volgende codevoorbeeld wordt cursor.execute uitgevoerd met de SQL DELETE-instructie om een voorraadartikel te verwijderen dat u eerder hebt ingevoegd.
# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")
Resources opschonen
Als u alle resources wilt opschonen die tijdens deze quickstart zijn gebruikt, verwijdert u de resourcegroep. Dit kan met de volgende opdracht:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes