Avvio rapido: 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 : il server singolo è 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 Informazioni su Database di Azure per PostgreSQL server singolo?
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:
Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
Creare un server singolo di Database di Azure per PostgreSQL usando il portale di Azure
o in alternativa l'interfaccia della riga di comando di Azure.A seconda che si usi l'accesso pubblico o privato, completare UNA delle azioni seguenti per abilitare la connettività.
Action Metodo di connettività Guida pratica Configurare le regole del firewall Pubblico Portale
CLIConfigurare l'endpoint di servizio Pubblico Portale
CLIConfigurare il collegamento privato Privato Portale
CLIPython 2.7 o 3.6+.
Versione più recente del programma di installazione del pacchetto pip.
Installare psycopg2 usando
pip install psycopg2-binary
in una finestra del terminale o del prompt dei comandi. Per altre informazioni, vedere la procedura per installarepsycopg2
.
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.
Nel portale di Azure, cercare il nome del server di Database di Azure per PostgreSQL e selezionarlo.
Nella pagina Panoramica del server, copiare il valore dei campi Nome server (completo) e Nome utente amministratore. Il nome del server completo è sempre del modulo <my-server-name.postgres.database.azure.com> e il nome utente Amministrazione è sempre del modulo <my-admin-username>@<my-server-name>.
È necessaria anche la password dell'amministratore. Se la password è stata dimenticata, è possibile reimpostarla in questa pagina.
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: Connettersi e inserire i dati
L'esempio di codice seguente si connette al database di Database di Azure per PostgreSQL usando
- la funzione psycopg2. Connect, quindi carica i dati con un'istruzione INSERT di SQL.
- La funzione cursor.execute esegue la query SQL sul 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()
Quando il codice viene eseguito in modo corretto, genera l'output seguente:
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