Si l'un de vos champs nécessite une date ou une heure, vous souhaiterez également importer le module datetime, fourni en standard avec Python.
Pour ouvrir une connexion à une base de données, psycopg a besoin de deux arguments: le nom de la base de données ('dbname') et le nom de l'utilisateur ('user'). La syntaxe d'ouverture d'une connexion suit ce format:
Pour notre base de données, nous utiliserons le nom de la base de données 'Birds' et le nom d'utilisateur 'robert'. Pour l'objet de connexion dans le programme, utilisons la variable «connexion». Ainsi, notre commande de connexion se lira comme suit:
Naturellement, cette commande ne fonctionnera que si les deux variables sont exactes: il doit y avoir une vraie base de données nommée 'Birds' à laquelle un utilisateur nommé 'robert' a accès. Si l'une de ces conditions n'est pas remplie, Python générera une erreur.
Ensuite, Python aime pouvoir garder une trace de l'endroit où il s'est arrêté pour la dernière fois lors de la lecture et de l'écriture dans la base de données. Dans psycopg, cela s'appelle le curseur, mais nous utiliserons la variable 'mark' pour notre programme. Ainsi, nous pouvons alors construire l'affectation suivante:
Bien que certains formats d'insertion SQL permettent une structure de colonnes comprise ou non déclarée, nous utiliserons le modèle suivant pour nos instructions d'insertion:
Bien que nous puissions transmettre une instruction dans ce format à la méthode psycopg «exécuter» et ainsi insérer des données dans la base de données, cela devient rapidement compliqué et déroutant. Une meilleure façon consiste à compartimenter l'instruction séparément de la commande 'execute' comme suit:
Enfin, après avoir transmis les données à PostgreSQL, nous devons valider les données dans la base de données:
Nous avons maintenant construit les parties de base de notre fonction «insert». Ensemble, les pièces ressemblent à ceci:
Vous remarquerez que nous avons trois variables dans notre instruction: table, colonnes et valeurs. Ceux-ci deviennent ainsi les paramètres avec lesquels la fonction est appelée:
Nous devons, bien sûr, suivre cela avec une chaîne de doc:
Enfin, nous avons une fonction pour insérer des données dans une table de notre choix, en utilisant des colonnes et des valeurs définies au besoin.
Pour appeler cette fonction, nous devons simplement définir la table, les colonnes et les valeurs et les transmettre comme suit: