# Programmation Python/Bases de données
## Partie 1 - Introduction

* Avant-propos à l'attention des non-programmeurs
* Introduction
* Installation
* Éditeurs
* Programmer en deux minutes
** une messagerie instantanée
** un programme interfacé avec Wikipédia
** un serveur Web

## Partie 2 - Le langage

* Afficher un texte
* Structure d'un programme
* Variables
* Opérateurs
* Structures de contrôle
* Instructions répétitives
* Types
** Numériques
** Booléens
** Chaines de caractères
** Listes
** Tuples
** Dictionnaires
** Dates
** Ensembles
* Fonctions
* Modules
* Exercices
** Palindrome
* Regex
* Programmation orientée objet pour les non-programmeurs
* Classes
* Classes et Interfaces graphiques
* Fichiers
* Exceptions
* Bases de données
** Gestion
* L'interface CGI
* Applications web
* Réseau
* Threads

## Partie 3 - Les bibliothèques

* Bibliothèques pour Python
* L'interface graphique
* Utilisation de fenêtres et de graphismes
** Tkinter
** Widgets
** Turtle
* Les threads
* XML
* JSON
* Tests
* Analyse statique de programmes
* Fabric
* Le Web
** Django
** Karrigell
** Aiohttp

## Partie 1 - Introduction

* Avant-propos à l'attention des non-programmeurs
* Introduction
* Installation
* Éditeurs
* Programmer en deux minutes
** une messagerie instantanée
** un programme interfacé avec Wikipédia
** un serveur Web

## Partie 2 - Le langage

* Afficher un texte
* Structure d'un programme
* Variables
* Opérateurs
* Structures de contrôle
* Instructions répétitives
* Types
** Numériques
** Booléens
** Chaines de caractères
** Listes
** Tuples
** Dictionnaires
** Dates
** Ensembles
* Fonctions
* Modules
* Exercices
** Palindrome
* Regex
* Programmation orientée objet pour les non-programmeurs
* Classes
* Classes et Interfaces graphiques
* Fichiers
* Exceptions
* Bases de données
** Gestion
* L'interface CGI
* Applications web
* Réseau
* Threads

## Partie 3 - Les bibliothèques

* Bibliothèques pour Python
* L'interface graphique
* Utilisation de fenêtres et de graphismes
** Tkinter
** Widgets
** Turtle
* Les threads
* XML
* JSON
* Tests
* Analyse statique de programmes
* Fabric
* Le Web
** Django
** Karrigell
** Aiohttp
[ Modifier le sommaire ]
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 :
* Sur Unix, taper : apt-get install python-mysqldb.
* Sur Windows, télécharger en cliquant ici ou là.

## MySQL

L'exemple ci-dessous permet d'exécuter une requête SQL de sélection :
* 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é :
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 :

## Installation de Gadfly

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

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

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

* (anglais) documentation SQLite
* (anglais) Psycopg2 (module PostgreSQL)
* (anglais) module MySQL
* (anglais) module IBM Informix Dynamic Server