Pour ce qui va suivre, nous supposerons que vous avez effectivement importé les données des quatre tables de la base de données Librairie.sq3 comme décrit dans le paragraphe précédent. Le petit script ci-dessous est fourni à titre purement indicatif. Il s’agit d’un client SQL rudimentaire, qui vous permet de vous connecter à la base de données Librairie.sq3 qui devrait à présent exister dans l’un de vos répertoires, d’y ouvrir un curseur et d’utiliser celui-ci pour effectuer des requêtes. Notez encore une fois que rien n’est transcrit sur le disque tant que la méthode commit() n’a pas été invoquée.
Cette application très simple n’est évidemment qu’un exemple. Il faudrait y ajouter la possibilité de choisir la base de données ainsi que le répertoire de travail. Pour éviter que le script ne se « plante » lorsque l’utilisateur encode une requête incorrecte, nous avons utilisé ici le traitement des exceptions déjà décrit dans un précédent chapitre.
En lançant le script ci-dessus (téléchargeable ici ), il est possible d'interroger la base de données directement à l'aide du langage SQL:
Le principal désavantage du script que nous avons écrit précédemment pour effectuer des requêtes SQL sur la base données Librairie.sq3 est la manière avec laquelle il stocke les résultats des requêtes. En effet, une fois le script refermé, toutes les requêtes entrées ainsi que leurs résultats respectifs disparaissent. Une amélioration possible serait de créer à chaque requête un fichier HTML récupérant les résultats de celle-ci dans un tableau comme le propose l'exercice suivant.
Ecrivez un script Python permettant d'effectuer des requêtes SQL sur la base de données Librairie.sq3 et d'enregistrer le résultat de chaque requête dans un nouveau fichier HTML sous la forme d'un tableau dont les lignes représenteront les différents enregistrements répondant aux critères de la requête et les colonnes chacun des champs les composant. Par exemple, la requête suivante
devra être capable de générer le fichier requete1.html, construit à partir du fichier-modèle template.html et basé sur le style MonStyle.css. Les documents nécessaires au test de l'exercice peuvent être téléchargés ici.
Afin de faciliter votre tâche, écrivez et testez les fonctions suivantes en suivant les indications mises à votre disposition dans chacun des fichiers-squelettes:
template.html.
Testez votre programme en récupérant les informations suivantes dans autant de fichiers HTML différents:
Réalisez une application graphique Python permettant d'effectuer des requêtes SQL sur la base de données Librairie.sq3 avec affichage momentanée du résultat directement dans l'interface graphique et possibilité de l'enregistrer définitivement sous la forme d'un tableau enregistré dans un fichier HTML externe. Votre application pourra avoir l'allure suivante:
Editeur graphique SQL
Aidez-vous du fichier de test du programme ainsi que des chapitres traitant des interfaces graphiques et de la programmation orientée objet du cours d'OC3, notamment au travers de l'exemple du train et suivez chacune des étapes suivantes en vous aidant du squelette de code mis à disposition:
Le bouton Exécuter permettra de lancer l'exécution de la requête entrée par l'utilisateur et en affichera le résultat dans la console IDLE comme le montre l'illustration ci-dessus; le bouton Effacer permettra d'effacer la précédente requête entrée dans la zone de texte et de réafficher l'invite de départ; le bouton Quitter permettra de fermer le curseur, la connexion à la base de donnée et détruire l'interface graphique. (Squelette | Solution)
Le cadre réceptionnera la fenêtre à carreaux dont chaque carreau vertical contiendra une nouvelle fenêtre à carreaux horizontaux contenant les valeurs d'attributs pris par l'enregistrement correspondant. Aidez-vous des exemples proposés par les liens proposés ainsi que du squelette ci-dessous. (Squelette | Solution)
Aidez-vous de l'exercice précédent que vous pouvez importer comme module ainsi que du squelette ci-dessous. (Squelette | Solution)