Module GesMag.db
++Expand source code +
+import sqlite3
+from sqlite3.dbapi2 import Cursor
+
+class BaseDeDonnees:
+ """Gère la base de donnée."""
+ def __init__(self, urlBaseDeDonnee: str):
+ self.connexion = self.creerConnexion(urlBaseDeDonnee)
+
+ def creerConnexion(self, path: str):
+ """Connexion à une base de donnée SQLite."""
+ if not self.fichierExiste(path): # si l base de donnée n'existe pas
+ open(path, "x") # on la créer
+ try:
+ connnexion = sqlite3.connect(path)
+ except sqlite3.Error as e:
+ print(e) # on affiche l'erreur
+ connnexion = None # et renvoie None
+ return connnexion
+
+ def fichierExiste(self, path: str) -> bool:
+ """Vérifie qu'un fichier existe."""
+ try: # on essaie d'ouvrir le fichier
+ open(path, "r")
+ except FileNotFoundError: # si le fichier n'existe pas
+ return False
+ else: # si le fichier existe
+ return True
+
+ def requete(self, requete: str, valeurs = None):
+ """Envois une requête vers la base de données."""
+ try:
+ curseur = self.connexion.cursor()
+ if valeurs: # s'il y a des valeurs alors on lance la commande `execute` avec ses dernières
+ if type(valeurs) not in [list, tuple]: # si la valeur c'est juste une chaîne de charactère (par exemple), alors la converti en liste
+ valeurs = [valeurs]
+ curseur.execute(requete, valeurs)
+ else: # sinon on lance juste la requête
+ curseur.execute(requete)
+ self.connexion.commit() # applique les changements à la base de donnée
+ return (curseur, curseur.lastrowid) # renvoie le curseur et l'ID de l'élément modifié
+ except sqlite3.Error as e: # s'il y a eu une erreur SQLite
+ print(e)
+
+ def affichageResultat(self, curseur: Cursor) -> list:
+ """Affiche le résultat d'une requête."""
+ tableau = []
+ if curseur == None: # si le curseur est vide il n'y a rien a affiché (tableau vide)
+ return tableau
+ lignes = curseur[0].fetchall() # sinon on récupère les éléments
+ for ligne in lignes:
+ tableau.append(ligne) # on les ajoute au tableau
+ return tableau # on le renvoie
+Classes
+-
+
+class BaseDeDonnees +(urlBaseDeDonnee: str) +
+-
++
Gère la base de donnée.
+++Expand source code +
+
+class BaseDeDonnees: + """Gère la base de donnée.""" + def __init__(self, urlBaseDeDonnee: str): + self.connexion = self.creerConnexion(urlBaseDeDonnee) + + def creerConnexion(self, path: str): + """Connexion à une base de donnée SQLite.""" + if not self.fichierExiste(path): # si l base de donnée n'existe pas + open(path, "x") # on la créer + try: + connnexion = sqlite3.connect(path) + except sqlite3.Error as e: + print(e) # on affiche l'erreur + connnexion = None # et renvoie None + return connnexion + + def fichierExiste(self, path: str) -> bool: + """Vérifie qu'un fichier existe.""" + try: # on essaie d'ouvrir le fichier + open(path, "r") + except FileNotFoundError: # si le fichier n'existe pas + return False + else: # si le fichier existe + return True + + def requete(self, requete: str, valeurs = None): + """Envois une requête vers la base de données.""" + try: + curseur = self.connexion.cursor() + if valeurs: # s'il y a des valeurs alors on lance la commande `execute` avec ses dernières + if type(valeurs) not in [list, tuple]: # si la valeur c'est juste une chaîne de charactère (par exemple), alors la converti en liste + valeurs = [valeurs] + curseur.execute(requete, valeurs) + else: # sinon on lance juste la requête + curseur.execute(requete) + self.connexion.commit() # applique les changements à la base de donnée + return (curseur, curseur.lastrowid) # renvoie le curseur et l'ID de l'élément modifié + except sqlite3.Error as e: # s'il y a eu une erreur SQLite + print(e) + + def affichageResultat(self, curseur: Cursor) -> list: + """Affiche le résultat d'une requête.""" + tableau = [] + if curseur == None: # si le curseur est vide il n'y a rien a affiché (tableau vide) + return tableau + lignes = curseur[0].fetchall() # sinon on récupère les éléments + for ligne in lignes: + tableau.append(ligne) # on les ajoute au tableau + return tableau # on le renvoie
Methods
+-
+
+def affichageResultat(self, curseur: sqlite3.Cursor) ‑> list +
+-
++
Affiche le résultat d'une requête.
+++Expand source code +
+
+def affichageResultat(self, curseur: Cursor) -> list: + """Affiche le résultat d'une requête.""" + tableau = [] + if curseur == None: # si le curseur est vide il n'y a rien a affiché (tableau vide) + return tableau + lignes = curseur[0].fetchall() # sinon on récupère les éléments + for ligne in lignes: + tableau.append(ligne) # on les ajoute au tableau + return tableau # on le renvoie
+ +def creerConnexion(self, path: str) +
+-
++
Connexion à une base de donnée SQLite.
+++Expand source code +
+
+def creerConnexion(self, path: str): + """Connexion à une base de donnée SQLite.""" + if not self.fichierExiste(path): # si l base de donnée n'existe pas + open(path, "x") # on la créer + try: + connnexion = sqlite3.connect(path) + except sqlite3.Error as e: + print(e) # on affiche l'erreur + connnexion = None # et renvoie None + return connnexion
+ +def fichierExiste(self, path: str) ‑> bool +
+-
++
Vérifie qu'un fichier existe.
+++Expand source code +
+
+def fichierExiste(self, path: str) -> bool: + """Vérifie qu'un fichier existe.""" + try: # on essaie d'ouvrir le fichier + open(path, "r") + except FileNotFoundError: # si le fichier n'existe pas + return False + else: # si le fichier existe + return True
+ +def requete(self, requete: str, valeurs=None) +
+-
++
Envois une requête vers la base de données.
+++Expand source code +
+
+def requete(self, requete: str, valeurs = None): + """Envois une requête vers la base de données.""" + try: + curseur = self.connexion.cursor() + if valeurs: # s'il y a des valeurs alors on lance la commande `execute` avec ses dernières + if type(valeurs) not in [list, tuple]: # si la valeur c'est juste une chaîne de charactère (par exemple), alors la converti en liste + valeurs = [valeurs] + curseur.execute(requete, valeurs) + else: # sinon on lance juste la requête + curseur.execute(requete) + self.connexion.commit() # applique les changements à la base de donnée + return (curseur, curseur.lastrowid) # renvoie le curseur et l'ID de l'élément modifié + except sqlite3.Error as e: # s'il y a eu une erreur SQLite + print(e)
+
+