2. Évolutions dans BiblioApp
Nous allons à présent expliquer comment faire évoluer le code de l'application
BiblioApp pour accéder à une base de données SQLite telle que présentée plus haut
plutôt qu'à un fichier. Notons qu'il s'agit d'une évolution qui va au-delà d'un simple
changement technique : elle implique le modèle de données et l'interface utilisateur.
Nous visons une nouvelle application qui se connecte automatiquement à une base de
données et qui gère automatiquement les modifications des enregistrements, sans avoir
à demander à l'utilisateur de sauvegarder chaque fois toutes les données.
Note > Le code source final de ce chapitre est disponible dans le projet acces_bd
.
2.1. Nettoyage préliminaire
Comme on part d'une application existante qui sauvegarde sur fichier, on va commencer
par enlever tout ce dont nous n'avons plus besoin, c'est-à-dire tout ce qui concerne de
près ou de loin la persistance sur fichier. Par ailleurs, on peut enlever les genres de
livre définis "en dur" au niveau de la liste déroulante du fichier .ui.
Voici dès lors les quelques actions de nettoyage à effectuer (il est bien sûr conseillé de
créer un nouveau projet en clonant le projet BiblioApp existant) :
1. dans main_window_biblio.ui : supprimer les sous-menus Ouvrir... et
Enregistrer, effacer les choix "---", "Biographie"... de la liste déroulante
comboBoxGenre (attention à bien recompiler la feuille .ui, après édition dans
Qt Designer) ;
2. dans modele_biblio.py : supprimer les méthodes creeDepuisFichier et
enregistreDansFichier ;
3. dans main_window.py : supprimer l'attribut nomFichierBiblio et les méthodes
closeEvent, on_actionOuvrir_triggered,
on_actionEnregistrer_triggered et modificationAEnregistrer et les
appels à ces méthodes.
162
Nous allons à présent expliquer comment faire évoluer le code de l'application
BiblioApp pour accéder à une base de données SQLite telle que présentée plus haut
plutôt qu'à un fichier. Notons qu'il s'agit d'une évolution qui va au-delà d'un simple
changement technique : elle implique le modèle de données et l'interface utilisateur.
Nous visons une nouvelle application qui se connecte automatiquement à une base de
données et qui gère automatiquement les modifications des enregistrements, sans avoir
à demander à l'utilisateur de sauvegarder chaque fois toutes les données.
Note > Le code source final de ce chapitre est disponible dans le projet acces_bd
.
2.1. Nettoyage préliminaire
Comme on part d'une application existante qui sauvegarde sur fichier, on va commencer
par enlever tout ce dont nous n'avons plus besoin, c'est-à-dire tout ce qui concerne de
près ou de loin la persistance sur fichier. Par ailleurs, on peut enlever les genres de
livre définis "en dur" au niveau de la liste déroulante du fichier .ui.
Voici dès lors les quelques actions de nettoyage à effectuer (il est bien sûr conseillé de
créer un nouveau projet en clonant le projet BiblioApp existant) :
1. dans main_window_biblio.ui : supprimer les sous-menus Ouvrir... et
Enregistrer, effacer les choix "---", "Biographie"... de la liste déroulante
comboBoxGenre (attention à bien recompiler la feuille .ui, après édition dans
Qt Designer) ;
2. dans modele_biblio.py : supprimer les méthodes creeDepuisFichier et
enregistreDansFichier ;
3. dans main_window.py : supprimer l'attribut nomFichierBiblio et les méthodes
closeEvent, on_actionOuvrir_triggered,
on_actionEnregistrer_triggered et modificationAEnregistrer et les
appels à ces méthodes.
162
