Programmation Python/Bases de données
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 :
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()
- On ouvre l'accès aux fonctions du Module
MySQLdb
. - 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).
- La ligne trois définit l'objet "cursor" qui va servir d'interface avec la base de données.
- On prépare ensuite la commande en langage SQL (ce qui pourrait aussi être défini en tout début du programme).
- On exécute cette requête dans la base.
- On formate les données brutes du résultat
- 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]- (anglais) documentation SQLite
- (anglais) Psycopg2 (module PostgreSQL)
- (anglais) module MySQL
- (anglais) module IBM Informix Dynamic Server