Adding comments

This commit is contained in:
Mylloon 2021-11-19 11:12:28 +01:00
parent 8dcb4755fb
commit e83c5e5a04
2 changed files with 32 additions and 29 deletions

43
db.py
View file

@ -1,51 +1,52 @@
import sqlite3 import sqlite3
from sqlite3.dbapi2 import Cursor
class BaseDeDonnees: class BaseDeDonnees:
"""Gère la base de donnée.""" """Gère la base de donnée."""
def __init__(self, urlBaseDeDonnee: str): def __init__(self, urlBaseDeDonnee: str):
self.connexion = self.creerConnexion(urlBaseDeDonnee) self.connexion = self.creerConnexion(urlBaseDeDonnee)
def creerConnexion(self, path): def creerConnexion(self, path: str):
"""Connexion à une base de donnée SQLite.""" """Connexion à une base de donnée SQLite."""
if not self.fichierExiste(path): if not self.fichierExiste(path): # si l base de donnée n'existe pas
open(path, "x") open(path, "x") # on la créer
connnexion = None
try: try:
connnexion = sqlite3.connect(path) connnexion = sqlite3.connect(path)
except sqlite3.Error as e: except sqlite3.Error as e:
print(e) print(e) # on affiche l'erreur
connnexion = None # et renvoie None
return connnexion return connnexion
def fichierExiste(self, path): def fichierExiste(self, path: str) -> bool:
"""Vérifie qu'un fichier existe.""" """Vérifie qu'un fichier existe."""
try: try: # on essaie d'ouvrir le fichier
open(path, "r") open(path, "r")
except FileNotFoundError: except FileNotFoundError: # si le fichier n'existe pas
return False return False
else: else: # si le fichier existe
return True return True
def requete(self, requete, valeurs = None): def requete(self, requete: str, valeurs = None):
"""Envois une requête vers la base de données.""" """Envois une requête vers la base de données."""
try: try:
curseur = self.connexion.cursor() curseur = self.connexion.cursor()
if valeurs: 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]: 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] valeurs = [valeurs]
curseur.execute(requete, valeurs) curseur.execute(requete, valeurs)
else: else: # sinon on lance juste la requête
curseur.execute(requete) curseur.execute(requete)
self.connexion.commit() self.connexion.commit() # applique les changements à la base de donnée
return (curseur, curseur.lastrowid) return (curseur, curseur.lastrowid) # renvoie le curseur et l'ID de l'élément modifié
except sqlite3.Error as e: except sqlite3.Error as e: # s'il y a eu une erreur SQLite
print(e) print(e)
def affichageResultat(self, curseur): def affichageResultat(self, curseur: Cursor) -> list:
"""Affiche le résultat d'une requête.""" """Affiche le résultat d'une requête."""
tableau = [] tableau = []
if curseur == None: if curseur == None: # si le curseur est vide il n'y a rien a affiché (tableau vide)
return tableau return tableau
lignes = curseur[0].fetchall() lignes = curseur[0].fetchall() # sinon on récupère les éléments
for ligne in lignes: for ligne in lignes:
tableau.append(ligne) tableau.append(ligne) # on les ajoute au tableau
return tableau return tableau # on le renvoie

View file

@ -46,27 +46,29 @@ class Utilisateurs(BaseDeDonnees):
self.requete(requete, [pseudo, passe, metier, nom, prenom, naissance, adresse, postal]) self.requete(requete, [pseudo, passe, metier, nom, prenom, naissance, adresse, postal])
return self.affichageResultat(self.requete("SELECT last_insert_rowid();")) return self.affichageResultat(self.requete("SELECT last_insert_rowid();"))
def suppressionUtilisateurs(self, nom: int) -> None: def suppressionUtilisateurs(self, pseudo: str) -> None:
"""Supprime un utilisateur.""" """Supprime un utilisateur."""
requete = """ requete = """
DELETE FROM utilisateurs DELETE FROM utilisateurs
WHERE nom = ? WHERE pseudo = ?
""" """
self.requete(requete, nom) self.requete(requete, pseudo)
def verificationIdentifiants(self, nom: str, motDePasse: str) -> bool: def verificationIdentifiants(self, pseudo: str, motDePasse: str) -> bool:
"""Renvoie vrai ou faux si les identifiants données sont bons.""" """Renvoie vrai ou faux si les identifiants données sont bons."""
requete = """ requete = """
SELECT EXISTS ( SELECT EXISTS (
SELECT 1 FROM utilisateurs SELECT 1 FROM utilisateurs
WHERE nom = ? AND passe = ? WHERE pseudo = ? AND passe = ?
) )
""" """
return True if self.affichageResultat(self.requete(requete, [nom, motDePasse]))[0][0] == 1 else False # Vrai si le premier élément que renvoie la requête au dessus est 1
return True if self.affichageResultat(self.requete(requete, [pseudo, motDePasse]))[0][0] == 1 else False
def listUtilisateurs(self) -> list: def listUtilisateurs(self) -> list:
"""Retourne la liste des utilisateurs.""" """Retourne la liste des nom d'utilisateurs."""
requete = """ requete = """
SELECT nom FROM utilisateurs SELECT pseudo FROM utilisateurs
""" """
# i[0] parce que sinon ça renvoie des Tuple qui ressemble à ça : `(Utilisateur,)`
return [i[0] for i in self.affichageResultat(self.requete(requete))] return [i[0] for i in self.affichageResultat(self.requete(requete))]