Démarrage rapide : Utiliser Python afin de se connecter à Azure Database pour PostgreSQL - Serveur unique et d'interroger les données

S’APPLIQUE À : Azure Database pour PostgreSQL – Serveur flexible

Dans ce guide de démarrage rapide, vous vous connectez à une instance de serveur flexible Azure Database pour PostgreSQL à l’aide de Python. Vous utilisez ensuite des instructions SQL pour interroger, insérer, mettre à jour et supprimer des données dans la base de données depuis des plateformes Mac, Ubuntu Linux et Windows.

Cet article part du principe que vous connaissez le développement à l’aide de Python, mais que vous débutez avec Azure Database pour PostgreSQL serveur flexible.

Prérequis

Préparation de votre station de travail cliente

Installer des bibliothèques Python pour PostgreSQL

Le module psycopg2 permet de se connecter à une base de données PostgreSQL et de l’interroger, et il est disponible comme package wheel Linux, macOS ou Windows. Installez la version binaire du module qui inclut toutes les dépendances.

Pour installer psycopg2, ouvrez une invite de commandes ou de terminal et exécutez la commande pip install psycopg2.

Obtenir des informations de connexion à la base de données

Connecter à une instance de serveur flexible Azure Database pour PostgreSQL nécessite le nom de serveur complet et les informations d’identification de connexion. Vous pouvez vous procurer ces informations à partir du portail Azure.

  1. Dans le Portail Azure, recherchez et sélectionnez votre nom de serveur flexible Azure Database pour PostgreSQL.

  2. Sur la page Vue d’ensemble du serveur, copiez le nom du serveur complet et le nom d’utilisateur administrateur. Le nom de serveur complet se présente toujours sous la forme <my-server-name>.postgres.database.azure.com.

    Vous avez aussi besoin de votre mot de passe d’administrateur. Si vous l'avez oublié, vous pouvez le réinitialiser à partir de la page de présentation.

Comment exécuter les exemples Python

Pour chaque exemple de code dans cet article :

  1. Créez un fichier dans un éditeur de texte.

  2. Ajoutez l’exemple de code au fichier. Dans le code, remplacez :

    • <server-name> et <admin-username> par les valeurs copiées à partir du portail Azure.
    • <admin-password> avec votre mot de passe du serveur.
    • <database-name>avec le nom de votre base de données de serveur flexible Azure Database pour PostgreSQL. Une base de données par défaut nommée postgres a été automatiquement créée lorsque vous avez créé votre serveur. Vous pouvez renommer cette base de données ou en créer une en utilisant les commandes SQL.
  3. Enregistrez le fichier dans votre dossier de projets avec l’extension .py, comme postgres-insert.py. Pour Windows, assurez-vous que l’encodage UTF-8 est sélectionné lorsque vous enregistrez le fichier.

  4. Pour exécuter le fichier, passez à votre dossier de projets dans une interface de ligne de commande, et tapez python suivi du nom de fichier, par exemple python postgres-insert.py.

Créer une table et insérer des données

L’exemple de code suivant se connecte à votre base de données de serveur flexible Azure Database pour PostgreSQL à l’aide de la fonction psycopg2.connect et charge des données avec une instruction SQL INSERT. La fonction cursor.execute exécute la requête SQL par rapport à la base de données.

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

Lorsque le code est exécuté correctement, il produit le résultat suivant :

Command-line output

Lire les données

L’exemple de code suivant se connecte à votre base de données de serveur flexible Azure Database pour PostgreSQL et utilise cursor.execute avec l’instruction SQL SELECT pour lire les données. Cette fonction accepte une requête et renvoie un jeu de résultats pour itérer en utilisant cursor.fetchall().

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

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

# Cleanup
conn.commit()
cursor.close()
conn.close()

Mettre à jour des données

L’exemple de code suivant se connecte à votre base de données de serveur flexible Azure Database pour PostgreSQL et utilise cursor.execute avec l’instruction SQL UPDATE pour mettre à jour les données.

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

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

# Cleanup
conn.commit()
cursor.close()
conn.close()

Supprimer des données

L’exemple de code suivant se connecte à votre base de données de serveur flexible Azure Database pour PostgreSQL et utilise cursor.execute avec l’instruction SQL DELETE pour supprimer un élément d’inventaire que vous avez inséré précédemment.

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

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

# Cleanup
conn.commit()
cursor.close()
conn.close()

Étapes suivantes