Bonjour à tous,

Sujet:
J'ai 2 fichiers un frontend.py pour tkinter et l'autre main.py.
Je souhaite confirmer l’enregistrement de ma saisie dans ma database sqlite3.
j'ai beau créer la variable result et la reprendre dans mon lablelResult, mais j'ai toujours ce message.

Fichier "C:\DevPython_Santiago\menesis_database_work-02\frontend.py", ligne 70, dans <module>
labelResult = Label(fenetre, textvariable=result, font=("Arial", 12))

builtins.NameError: name 'result' is not defined
Je vous mets mon code ci-dessous

frontend.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
# -*- coding: utf-8 -*-
 
from tkinter import *
from main import * # syntaxe pour appeller un autre fichier py + fonction
from tkinter import font
 
 
#================== Création du constructeur graphique =================================
fenetre =Tk() # Création d'un constructeur
#champ_label = Label(fenetre, text="Menu") # Création d'un label
#champ_label.pack() # création de l'impression du label
 
#======== Dimensionnement de la fenetre =================================================
# Fonction centrer fenêtre
screen_x = int(fenetre.winfo_screenwidth())
screen_y = int(fenetre.winfo_screenheight())
 
#fenetre_x = 1600
#fenetre_y = 900
 
fenetre_x = 800
fenetre_y = 600
 
pos_x = (screen_x // 2) - (fenetre_x // 2)
pos_y = (screen_y // 2) - (fenetre_y // 2)
 
# Attention le 1er facteur est x ensuite +
geo = "{}x{}+{}+{}".format(fenetre_x, fenetre_y, pos_x, pos_y)
fenetre.geometry(geo)
 
#============= FENETRE FIN ==============================================================
fenetre.iconbitmap("img/search.ico") ### Changement de l'icone de la fenêtre [l'icone doit être placé dans le répertoire racine de l'application ou un autre répertoire img/...]
 
#=================== Création d'un menu =================================================
menubar = Menu(fenetre) # Création de la FRAME pour placer les menus
 
menuFichier = Menu(menubar, tearoff=0) # Création du menu "Fichier"
menubar.add_cascade(label="Fichier", menu=menuFichier) # Rattachement des commandes au menu "Fichier"
menuFichier.add_command(label="Créer")
menuFichier.add_command(label="Ouvrir",)
menuFichier.add_command(label="Editer")
menuFichier.add_separator() # Ligne de séparation
menuFichier.add_command(label="Quitter", command=fenetre.quit)
 
menuEdition = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Edition", menu=menuEdition)
menuEdition.add_command(label="Couper")
menuEdition.add_command(label="Copier")
menuEdition.add_command(label="Coller")
 
menuAide = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Aide", menu=menuAide)
menuAide.add_command(label="A propos")
 
#=================== Création d'un GRID ================================================
 
labelAuteur = Label(fenetre, text="auteur", font=("Arial", 12), width="30", height="5")
labelAuteur.grid(row = 1, column=1, padx = 20)
entreeAuteur = Entry (fenetre,  width="30")
entreeAuteur.grid(row = 1, column = 2,) 
 
labelInfos = Label(fenetre, text="infos", font=("Arial", 12))
labelInfos.grid(row = 2, column=1, padx = 20)
entreeInfos = Entry (fenetre)
entreeInfos.grid(row = 2, column = 2) 
 
boutonEnregistrer = Button (fenetre, text='Valider', command=lambda : enregister(entreeAuteur.get(), entreeInfos.get()))
boutonEnregistrer.grid (row = 1, column = 8, padx = 30)
 
labelResult = Label(fenetre, textvariable=result, font=("Arial", 12))
labelResult.grid(row = 3, column=1, padx = 20)
 
#================== FERMETURE DES BOUCLES ==============================================
fenetre.config(menu=menubar) # Configuration et print menu
fenetre.mainloop() # Boucle principale
main.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
# -*- coding: utf-8 -*-
import sqlite3
 
#=================== Insertion des données dans database ================================================
def enregister(auteur, infos,result):
 
        try:                
                result = StringVar()
                result.set=("Enregistrement effectué")
                connection = sqlite3.connect('mnesis.db') # Connection à la BdD
                cursor = connection.cursor() # création du curseur
                new_auteur = (cursor.lastrowid, auteur, infos) # Récupération des valeurs des boutons
                cursor.execute('INSERT INTO tb_auteur VALUES(?,?,?)',new_auteur) # les (?,?,?) représentent les valeurs qui sont renseignées dans la variable new_auteur 
                print(result)
 
        except Exception as e:
                print("ERREUR",e)
                connection.rollback()
        finally:
                cursor.close()
                connection.commit() # Valider l'enregistrement dans la database
                connection.close() ## Fermeture de la connection