Maison  >  Article  >  développement back-end  >  Introduction au module Psycopg2 en Python

Introduction au module Psycopg2 en Python

WBOY
WBOYavant
2023-08-19 16:01:053200parcourir

Introduction au module Psycopg2 en Python

Nous savons que Python est un langage de programmation utilisé pour accomplir diverses tâches dans des domaines tels que l'analyse des données, l'IA, l'apprentissage automatique, etc. Et évidemment, il existe différents modules avec des fonctions spéciales qui nous aident à faire le travail.

De même, le code Python interagit avec la base de données PostgreSQL via un module appelé « module Psychog2 ». Il s'agit d'un adaptateur de base de données PostgreSQL populaire pour Python. Ce module nous fournit un ensemble de fonctions et de classes pour nous aider avec les connexions à la base de données, le traitement des résultats et l'exécution des requêtes.

Principales fonctionnalités du module Psycopg2 en Python

  • Connexion à la base de données : Le module Psycopg2 en Python est livré avec une fonction "connect()". Cette fonction permet d'établir une connexion à la base de données PostgreSQL. Nous pouvons transmettre des paramètres tels que le nom de la base de données, le nom d'utilisateur, le mot de passe et l'hôte à cette fonction, ce qui nous aidera à nous connecter à la base de données de notre choix.

  • Exécution de requêtes : Le module Psycopg2 nous permet de saisir des requêtes SQL sur une base de données PsycopgSQL connectée. La méthode "execute()" nous aide à exécuter des instructions SQL, telles que SELECT pour accéder aux données, et INSERT, UPDATE et DELETE pour les opérations sur les données.

  • Relevés précompilés : L'optimisation des requêtes SQL est une fonctionnalité très utile du module Psycopg2. Le simple fait de préparer une requête SQL une fois à l'avance et de l'exécuter plusieurs fois avec différents paramètres peut conduire à de grandes améliorations des performances.

  • Gestion des transactions : Psycopg2 nous fournit une fonction qui permet de gérer les transactions. Initier une transaction, valider les modifications au sein d'une transaction et tout annuler, est plus facile avec ce module. Les transactions garantissent l'intégrité et la cohérence des données en regroupant plusieurs. opérations de base de données en une seule unité.

  • Gestion des erreurs : Psycopg2 gère les erreurs et les exceptions liées aux bases de données et nous fournit des messages d'erreur et des informations détaillés qui nous aident à déboguer les problèmes de connexion à la base de données ou d'exécution de la requête.

  • Gestion des résultats : Après avoir exécuté une requête, le module Psycopg2 nous fournit des méthodes pour récupérer l'ensemble de résultats, parcourir les lignes et accéder aux données renvoyées. Nous pouvons obtenir des colonnes individuelles ou accéder aux lignes sous forme de dictionnaires pour une manipulation plus facile des données.

  • Conversion de type de données : Psycopg2 convertira automatiquement les objets Python en types de données correspondants pris en charge par PostgreSQL. vice versa. Il prend en charge divers types de données PostgreSQL intégrés tels que les entiers, les chaînes, les dates, JSON, etc.

Installation du module Postgre2 en Python

Ici, nous utiliserons la commande pip pour installer le module Psycopg2. Nous devons nous assurer que la dernière version de pip est utilisée. Dans le terminal, nous devons saisir ce qui suit :

pip install -U pip
pip install psycopg2-binary

Ces commandes installeront la version binaire de Pycopg2 qui ne nécessite aucun prérequis de construction ou d'exécution.

Comment utiliser le module

Le module Psycopg2 a de nombreuses applications, comme l'établissement d'une connexion entre le code Python et une base de données PostgreSQL. Voici le code qui fait exactement cela :

Exemple

import psycopg2

DB_NAME = "tkgafrwp"
DB_USER = "tkgafrwp"
DB_PASS = "iYYtLAXVbid-i6MV3NO1EnU-_9SW2uEi"
DB_HOST = "tyke.db.elephantsql.com"
DB_PORT = "5692"

try:
   conn = psycopg2.connect(database=DB_NAME,
                user=DB_USER,
                password=DB_PASS,
                host=DB_HOST,
                port=DB_PORT)
   print("Database connected successfully")
except:
   print("Database not connected successfully")

Ici, nous pouvons observer que le nom de la base de données, l'utilisateur de la base de données, le mot de passe, l'hôte et le port ont été stockés dans différentes variables. Ensuite, pour rendre le code aussi robuste que possible, nous utilisons des blocs try et accept. À l'intérieur du bloc try, nous utilisons la fonction "connect()" pour connecter le code Python à la base de données PostgreSQL. Cette fonction utilise toutes les informations que nous avons stockées dans différentes variables

Après nous être connectés à la base de données, nous souhaitons absolument pouvoir effectuer quelques opérations utiles sur la base de données. Nous pouvons utiliser du code Python pour générer des requêtes SQL ! L'extrait de code suivant le démontrera :

Exemple

import psycopg2

DB_NAME = "tkgafrwp"
DB_USER = "tkgafrwp"
DB_PASS = "iYYtLAXVbid-i6MV3NO1EnU-_9SW2uEi"
DB_HOST = "tyke.db.elephantsql.com"
DB_PORT = "5692"

conn = psycopg2.connect(database=DB_NAME,
                user=DB_USER,
                password=DB_PASS,
                host=DB_HOST,
                port=DB_PORT)
print("Database connected successfully")

cur = conn.cursor()
cur.execute("""
CREATE TABLE Employee
(
   ID INT  PRIMARY KEY NOT NULL,
   NAME TEXT NOT NULL,
   EMAI TEXT NOT NULL
)
""")
conn.commit()
print("Table Created successfully")

Ici, on crée un curseur à l'aide de la fonction "cursor()" puis on le stocke dans la variable cur Ensuite on le formate d'une chaîne multiligne et on tape la requête SQL qui ira dans la base de données. nous utilisons la fonction commit() pour appliquer ces modifications à la base de données.

Insérer des données dans des tableaux existants est également possible ! Auparavant, nous avons créé le tableau, puis nous avons entré les données dans le tableau. L'extrait de code suivant nous montrera :

Exemple

import psycopg2

DB_NAME = "tkgafrwp"
DB_USER = "tkgafrwp"
DB_PASS = "iYYtLAXVbid-i6MV3NO1EnU-_9SW2uEi"
DB_HOST = "tyke.db.elephantsql.com"
DB_PORT = "5692"

conn = psycopg2.connect(database=DB_NAME,
                user=DB_USER,
                password=DB_PASS,
                host=DB_HOST,
                port=DB_PORT)
print("Database connected successfully")

cur = conn.cursor()
cur.execute("""
   INSERT INTO Employee (ID, NAME, EMAIL) VALUES
   (1, 'Virat Kohli','viratk@gmail.com'),
   (2,' Lionel Messi','leomessi87@gmail.com')
 """)
conn.commit()
conn.close()

Ici, nous utilisons la fonction exécuter() pour exécuter les instructions SQL afin d'insérer des données dans la table existante.

En plus d'insérer des données dans la base de données réelle et de les afficher sur le serveur, nous pouvons également afficher les données dans le terminal Python. Mais d'abord, nous devons installer un module appelé "mysqlx". Ce module est également très utile lorsque vous travaillez avec des bases de données SQL. Voici le code :

Exemple

from mysqlx import Rows
import psycopg2

DB_NAME = "tkgafrwp"
DB_USER = "tkgafrwp"
DB_PASS = "iYYtLAXVbid-i6MV3NO1EnU-_9SW2uEi"
DB_HOST = "tyke.db.elephantsql.com"
DB_PORT = "5692"

conn = psycopg2.connect(database=DB_NAME,
                user=DB_USER,
                password=DB_PASS,
                host=DB_HOST,
                port=DB_PORT)
print("Database connected successfully")

cur = conn.cursor()
cur.execute("SELECT * FROM Employee")
rows = cur.fetchall()
for data in rows:
   print("ID :" + str(data[0]))
   print("NAME :" + data[1])
   print("EMAIL :" + data[2])

print('Data fetched successfully and shown on the terminal!')
conn.close()

Nous avons ici les lignes extraites du module « mysqlx ». Ensuite, en utilisant une boucle for, nous parcourons chaque ligne du tableau. De cette façon, nous obtenons toutes les données pour chaque ligne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer