Guida introduttiva: Usare Python per connettersi ed eseguire query sui dati in Database di Azure per PostgreSQL - Server singolo

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Questa guida di avvio rapido illustra come connettersi al database nel server singolo di Database di Azure per PostgreSQL e immettere istruzioni SQL per eseguire query con Python in macOS, Ubuntu Linux o Windows.

Suggerimento

Per indicazioni su come creare un'applicazione Django con PostgreSQL, vedere l'esercitazione Distribuire un'app Web Django con PostgreSQL.

Prerequisiti

Per questa guida di avvio rapido, è necessario:

Recuperare le informazioni di connessione al database SQL

Per la connessione a Database di Azure per PostgreSQL, sono necessari il nome completo del server e le credenziali di accesso. È possibile ottenere queste informazioni nel portale di Azure.

  1. Nel portale di Azure, cercare il nome del server di Database di Azure per PostgreSQL e selezionarlo.

  2. Nella pagina Panoramica del server, copiare il valore dei campi Nome server (completo) e Nome utente amministratore. Il nome completo del server è sempre nel formato< my-server-name.postgres.database.azure.com> e il nome utente Amministrazione è sempre nel formato< my-admin-username>@<my-server-name.>

    È necessaria anche la password dell'amministratore. Se la password è stata dimenticata, è possibile reimpostarla in questa pagina.

    Nome del server Database di Azure per PostgreSQL

Importante

Sostituire i valori seguenti:

  • <server-name> e <admin-username> con i valori copiati dal portale di Azure.
  • <admin-password> con la password del server.
  • <database-name> con il nome del database del server singolo di Database di Azure per PostreSQL. Un database predefinito denominato postgres è stato creato automaticamente contemporaneamente al server. È possibile rinominare questo database o crearne uno nuovo usando i comandi di SQL.

Passaggio 1: Connessione e inserire i dati

L'esempio di codice seguente si connette al database di Database di Azure per PostgreSQL usando

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

Quando il codice viene eseguito in modo corretto, genera l'output seguente:

Output della riga di comando

Passaggio 2: Leggere i dati

L'esempio di codice seguente si connette al database di Database di Azure per PostgreSQL e usa

  • la funzione cursor.execute con l'istruzione SELECT di SQL per leggere i dati.
  • La funzione accetta una query e restituisce un set di risultati su cui eseguire l'iterazione tramite cursor.fetchall()

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

Passaggio 3: Aggiornare i dati

L'esempio di codice seguente usa cursor.execute con l'istruzione UPDATE di SQL per aggiornare i dati.


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

Passaggio 5: Eliminare i dati

L'esempio di codice seguente esegue cursor.execute con l'istruzione DELETE di SQL per eliminare una voce di inventario inserita in precedenza.


# Delete data row from table

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

Pulire le risorse

Per pulire tutte le risorse usate in questo argomento di avvio rapido, eliminare il gruppo di risorse con il comando seguente:

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

Passaggi successivi