Bonjour,

Pouvez-vous s'il vous plaît m'aider...
J'ai un fichier main.py qui est mon interface graphique en Tkinter. Dans cette page je test l'utilisation d'insertion de données dans ma database (cela marche quand tout est dans le même fichier).
Je souhaite comme dans le PHP utiliser la notion "INCLUDE" mais alors que que j'importe mon 2ème fichier cela ne marche pas.


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
# -*- coding: utf-8 -*-
 
from tkinter import *
import os
from database import enregister # 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=enregister)
boutonEnregistrer.grid (row = 1, column = 8, padx = 30)
 
#================== FERMETURE DES BOUCLES ==============================================
fenetre.config(menu=menubar) # Configuration et print menu
fenetre.mainloop() # Boucle principale
Dans mon 2ème fichier datbase.py se trouve le codes pour insérer les données dans ma database.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding: utf-8 -*-
import sqlite3
 
#=================== Insertion des données dans database ================================================
def enregister():
 
    connection = sqlite3.connect('mnesis.db') # Connection à la BdD
    cursor = connection.cursor() # création du curseur
    new_auteur = (cursor.lastrowid, entreeAuteur.get(),entreeInfos.get()) # 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("Enregistrement effectué")
    cursor.close()
    connection.commit() # Valider l'enregistrement dans la database
    connection.close() ## Fermeture de la connection
Mais cela ne marche pas et voici la message dans mon débogueur :

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\charlelie\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\DevPython_Santiago\menesis_database_work\database.py", line 9, in enregister
    new_auteur = (cursor.lastrowid, entreeAuteur.get(),entreeInfos.get()) # Récupération des valeurs des boutons
NameError: name 'entreeAuteur' is not defined
Comme je débute, je n'arrive pas à comprendre ce qui se passe et en PHP il suffisait simplement d'appeler le fichier.
Voilà... merci par avance pour vos lumières.