IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Comment faire pour qu'une fonction d'ajout d'élément dans une bdd fonctionne graphiquement ?


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2023
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comment faire pour qu'une fonction d'ajout d'élément dans une bdd fonctionne graphiquement ?
    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()

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par RetroGamePlayer Voir le message
    J'aimerai savoir comment puis-je m'y prendre.
    Programmer en mode console est dit séquentiel alors qu'avec un GUI graphique ce sera de l'évènementiel. Ce sont deux paradigmes de programmation qui s’apprennent indépendamment l'un de l'autre et il faudra une certaine maîtrise pour en faire un seul code qui fonctionne dans les 2 environnements.

    Ce qui veut dire que dans un premier temps, il sera plus simple d'écrire 2 programmes indépendants.
    Reste à apprendre à programmer avec tkinter (et les vacances de noêl sont bientôt là pour passer du temps dans les tutos).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2023
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je vous remercie, j'ai trouvé comment faire avec un peu de recherche

Discussions similaires

  1. Comment faire pour utiliser plusieurs fonctions logiques dans une condition ?
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/11/2010, 11h37
  2. Réponses: 5
    Dernier message: 31/01/2008, 17h05
  3. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31
  4. Comment faire pour killer une application ?
    Par tintin22 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 17/08/2004, 18h16
  5. comment faire pour qu'une application soit toujours visible ?
    Par goldbar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2004, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo