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
    CLI
    Service-eindpunt configureren Openbaar Portal
    CLI
    Privékoppeling configureren Privé Portal
    CLI
  • Python 2.7 of 3.6+.

  • Nieuwste PIP-pakketinstallatieprogramma.

  • Installeer psycopg2 met behulp van pip install psycopg2-binary in een terminal of opdrachtpromptvenster. Zie psycopg2 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.

  1. Zoek en selecteer in Azure Portal uw Azure Database for PostgreSQL-servernaam.

  2. 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.

    Servernaam Azure Database for PostgreSQL

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:

Opdrachtregeluitvoer

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

Volgende stappen