Démarrage rapide : Utiliser Python afin de se connecter à Azure Database pour PostgreSQL et d’interroger les données – Serveur unique
S’APPLIQUE À : Azure Database pour PostgreSQL : serveur unique
Important
Azure Database pour PostgreSQL - Serveur unique est en voie de mise hors service. Nous vous recommandons vivement de procéder à une mise à niveau vers un serveur flexible Azure Database pour PostgreSQL. Pour plus d’informations sur la migration vers le Serveur flexible Azure Database pour PostgreSQL, consultez l’article Qu’arrive-t-il au Serveur unique Azure Database pour PostgreSQL ?.
Ce guide de démarrage rapide vous explique comment vous connecter à la base de données sur un serveur unique Azure Database pour PostgreSQL et comment exécuter des instructions SQL pour interroger des données à l’aide de Python sur macOS, Ubuntu Linux ou Windows.
Conseil
Si vous envisagez de créer une application Django avec PostgreSQL, consultez le tutoriel Déployer une application web Django avec PostgreSQL.
Prérequis
Voici les prérequis pour ce guide de démarrage rapide :
Compte Azure avec un abonnement actif. Créez un compte gratuitement.
Créez un serveur unique Azure Database pour PostgreSQL à l’aide du portail Azure
ou d’Azure CLI, si vous n’en avez pas.Selon que vous utilisez un accès public ou privé, effectuez UNE des actions ci-dessous pour activer la connectivité.
Action Méthode de connexion Guide pratique Configurer les règles de pare-feu Public Portail
INTERFACE DE LIGNE DE COMMANDEConfigurer le point de terminaison de service Public Portail
INTERFACE DE LIGNE DE COMMANDEConfigurer une liaison privée Privées Portail
INTERFACE DE LIGNE DE COMMANDEPython 2.7 ou 3.6+.
Dernier programme d’installation de package pip.
Installez psycopg2 en exécutant la commande
pip install psycopg2-binary
dans un terminal ou une fenêtre d’invite de commandes. Pour plus d’informations, consultez Comment installerpsycopg2
.
Obtenir des informations de connexion à la base de données
La connexion d’une base de données Azure Database pour PostgreSQL nécessite un nom de serveur complet et des informations d’identification de connexion. Vous pouvez vous procurer ces informations à partir du portail Azure.
Dans le portail Azure, cherchez et sélectionnez le nom de votre serveur Azure Database pour PostgreSQL.
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 a toujours la forme <nom_de_mon_serveur>.postgres.database.azure.com, et le nom d’utilisateur administrateur a toujours la forme <mon_nom_utilisateur_admin>@<nom_de_mon_serveur>.
Vous avez aussi besoin de votre mot de passe d’administrateur. Si vous l’avez oublié, vous pouvez le réinitialiser à partir de cette page.
Important
Remplacez les valeurs suivantes :
<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>
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 créer une autre base de données en utilisant des commandes SQL.
Étape 1 : Vous connecter et insérer des données
L’exemple de code suivant se connecte à votre base de données Azure Database pour PostgreSQL à l’aide de
- la fonction psycopg2.connect, puis il charge les données en utilisant une instruction SQL INSERT.
- La fonction cursor.execute exécute la requête SQL sur 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 :
Étape 2 : Lire les données
L’exemple de code suivant se connecte à votre base de données Azure Database pour PostgreSQL et utilise
- cursor.execute avec l’instruction SQL SELECT pour lire les données.
- cursor.fetchall() accepte une requête et retourne un jeu de résultats pour itérer dessus
# 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])))
Étape 3 : Mettre à jour des données
L’exemple de code suivant utilise cursor.execute avec l’instruction SQL UPDATE pour mettre à jour les données.
# 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")
Étape 5 : Suppression de données
L’exemple de code suivant exécute cursor.execute avec l’instruction SQL DELETE pour supprimer un élément d’inventaire que vous aviez précédemment inséré.
# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")
Nettoyer les ressources
Pour nettoyer toutes les ressources utilisées dans le cadre de ce guide de démarrage rapide, supprimez le groupe de ressources à l’aide de la commande suivante :
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes