Bonjour, pour mon projet en NSI au lycée je dois gérer une base de données par python avec sqlite, il faut que je fasse 4 fonctions : Ajouter, Rechercher, Modifier et Supprimer qui, respectivement, ajoutent un t-uplet à la bdd (on entre les valeurs voulue avant), recherche un t-uplet, modifie un t-uplet et supprime un t-uplet. Mon problème est le suivant : il faut que cette interactivité soit faite dans la console et, si possible, dans une interface graphique TKinter, le souci c'est que j'ai réussi à ajouter des bouton "ajouter", "supprimer" etc... Mais je n'arrive pas à les rendres interactifs et qu'ils exécutent quelconque programme. J'aimerai savoir comment puis-je m'y prendre. Je vous donne mon code ci-dessous :
import sqlite3
conn = sqlite3.connect('baseDonnees.db')
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS annuaire(id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, Nom TEXT, Prenom TXT, N°téléphone INT, email TEXT,qualité TEXT)")
choix = None
def Ajouter()->None:
"""ajoute un élément à la base de donnée"""
nb_en = int(input("Nombre d'enregistrements : "))
for i in range(nb_en):
print("ajout n°",i+1," expression régulière: \n nom, prenom, numéro de téléphone (commence par 0), email, qualité \n (peut être vide mettre 1 espace après la virgule)")
Nom = input("Nom : ")
Prenom = input("Prenom : ")
Ntel = int(input("Numero tel : "))
email = input("email : ")
qual = input("qualité : ")
compil = (Nom,Prenom,Ntel,email,qual)
cur.execute("INSERT INTO annuaire(Nom,Prenom,N°téléphone,email,qualité) VALUES(?, ?, ?, ?, ?)", compil)
def Rechercher()->tuple:
"""recherche un élément dans la base de donnée et l'affiche"""
print("comment voulez vous trouver ce que vous voulez : \n 1- Nom \n 2- Prenom \n 3- N Tel")
rech = int(input("votre choix : "))
if rech == 1:
nom_rech = input("mettez le nom : ")
cur.execute("SELECT * FROM annuaire WHERE Nom='{}'".format(nom_rech))
liste=cur.fetchall()
print(liste)
elif rech == 2:
pre_rech = input("mettez le prenom : ")
cur.execute("SELECT * FROM annuaire WHERE Prenom='{}'".format(pre_rech))
liste=cur.fetchall()
print(liste)
elif rech == 3:
tel_rech = int(input("mettez le num de tel : "))
cur.execute("SELECT * FROM annuaire WHERE N°téléphone='{}'".format(tel_rech))
liste=cur.fetchall()
print(liste)
else:
print("choix invalide")
def Modifier()->None:
"""modifie l'élément sélectionné dans la base de donnée"""
id_mod = int(input("id de la ligne à modifier : "))
nouv_nom = input("Nouveau Nom : ")
nouv_pre = input("Nouveau Prenom : ")
nouv_tel = int(input("Nouveau num de tel : "))
nouv_mail = input("Nouveau mail : ")
nouv_qual = input("Nouvelle qualité : ")
compil2 = (nouv_nom,nouv_pre,nouv_tel,nouv_mail,nouv_qual,id_mod)
cur.execute('UPDATE annuaire SET Nom = ?,Prenom = ?, N°téléphone = ?, email = ?, qualité = ? WHERE id = ?', compil2)
def Suppression()->None:
""" supprime l'élément indiqué dans la base de donnée"""
id_sup = int(input("id de la ligne à supprimer : "))
cur.execute("DELETE FROM annuaire WHERE id = {}".format(id_sup))
def Prog(choix):
"""programme faisant tourner toute la base de donnée, il prend le choix et l'éxécute infiniment tant que c'est pas le 5 qui est choisi"""
if choix == 1:
Ajouter()
elif choix == 2:
Rechercher()
elif choix == 3:
Modifier()
elif choix == 4:
Suppression()
while choix != 5:
print("1- Ajouter un ou plusieurs enregistrements \n 2- Rechercher dans le répertoire \n 3- Modification d'un enregistrement \n 4- Suppression d'un enregistrement \n 5- Quitter \n")
choix = int(input("Quel est votre choix : "))
Prog(choix)
conn.commit()
cur.close()
conn.close()
Partager