Programmation Python/Bases de données

Un livre de Wikilivres.

Python contient des modules pour bases de données, comme MySQL, PostgreSQL, SQLite, IBM Informix Dynamic Server et Berkeley DB.

Par exemple pour installer le premier :

  1. Sur Unix, taper : apt-get install python-mysqldb.
  2. Sur Windows, télécharger en cliquant ici ou .

MySQL[modifier | modifier le wikicode]

L'exemple ci-dessous permet d'exécuter une requête SQL de sélection :

1  import MySQLdb
2  db = MySQLdb.connect("machine", "dbuser", "password", "dbname")
3  cursor = db.cursor()
4  query = """SELECT * FROM sampletable"""
5  lines = cursor.execute(query)
6  data = cursor.fetchall()
7  db.close()
  1. On ouvre l'accès aux fonctions du Module MySQLdb.
  2. On tente d'établir une connexion à la base de données nommée (si cela ne fonctionne pas, essayer de pinger le nom de machine mentionné pour diagnostiquer un problème réseau).
  3. La ligne trois définit l'objet "cursor" qui va servir d'interface avec la base de données.
  4. On prépare ensuite la commande en langage SQL (ce qui pourrait aussi être défini en tout début du programme).
  5. On exécute cette requête dans la base.
  6. On formate les données brutes du résultat
  7. On clos la connexion.

Remarque : quand il y a beaucoup de lignes, il est préférable d'utiliser row = cursor.fetchone() pour une meilleure visibilité :

1  import MySQLdb
2  db = MySQLdb.connect("machine", "dbuser", "password", "dbname")
3  cursor = db.cursor()
4  query = """SELECT * FROM sampletable"""
5  lines = cursor.execute(query)
6  while True:
7    row = cursor.fetchone()
8    if row == None: break
9  db.close()

Le résultat du fetchone() est de type tuple.

Par ailleurs, la connexion à la base (en ligne 2) peut être enregistrée dans un fichier de configuration, celle-ci devient alors :

import MySQLdb
db = MySQLdb.connect(read_default_file="~/.my.cnf")
...

Postgres[modifier | modifier le wikicode]

import psycopg2
conn = psycopg2.connect("dbname=test")
cursor = conn.cursor()
cursor.execute("select * from test");
for i in cursor.next():
    print i
conn.close()

Installation de Gadfly[modifier | modifier le wikicode]

Gadfly est un système de bases de données écrit en Python.

Depuis le site http://sourceforge.net/projects/gadfly, télécharger le paquetage gadfly-1.0.0.tar.gz. Il s'agit d'un fichier archive comprimé. Copiez ce fichier dans un répertoire temporaire.

Sous Windows[modifier | modifier le wikicode]

Dans un répertoire temporaire quelconque, décomprimez le fichier archive à l'aide d'un logiciel tel que Winzip.

Ouvrez une fenêtre DOS et entrez dans le sous-répertoire qui s'est créé automatiquement.

Lancez la commande : python setup.py install

C'est tout. Vous pouvez éventuellement améliorer les performances, en ajoutant l'opération suivante :

Dans le sous-répertoire qui s'est créé, ouvrez le sous-répertoire kjbuckets, puis le sous-répertoire qui correspond à votre version de Python. Recopiez le fichier *.pyd qui s'y trouve dans le répertoire racine de votre installation de Python.

Lorsque tout est terminé, effacez le contenu de votre répertoire temporaire.

Sous Linux[modifier | modifier le wikicode]

En tant qu'administrateur (root), choisissez un répertoire temporaire quelconque et décomprimez-y le fichier archive à l'aide de l'utilitaire tar, qui fait certainement partie de votre distribution. Entrez simplement la commande : tar -xvzf gadfly-1.0.0.tar.gz

Entrez dans le sous-répertoire qui s'est créé automatiquement : cd gadfly-1.0.0

Lancez la commande : python setup.py install

C'est tout. Si votre système Linux comporte un compilateur C, vous pouvez améliorer les performances de Gadfly en recompilant la bibliothèque kjbuckets .

Pour ce faire, entrez encore les deux commandes suivantes :

  • cd kjbuckets
  • python setup.py install

Lorsque tout est terminé, effacez tout le contenu du répertoire temporaire.

Liens externes[modifier | modifier le wikicode]