Bonjour à tous,
Je suis en python 3 et je rencontre un problème qui m'échappe, car cela marche pour une fonction et pas pour la suivante.
je veux après saisie dans un ENTRY après enregistrement dans ma base de donnée SQLITE3 effacer le texte saisie pour remettre à zéro l'ENTRY pour une autre saisie.
Merci beaucoup par avance pour votre aide.
Là cela marche pour les thèmes à la ligne 23:
Voici le formulaire :
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 def save_theme(theme_theme): """ Insertion des données dans database tb_auteur """ try: connection = sqlite3.connect('mnesis.db') # Connection à la BdD cursor = connection.cursor() # création du curseur new_theme = (cursor.lastrowid, theme_theme) # Récupération des valeurs des boutons # les (?,?,?) représentent les valeurs qui sont renseignées dans la variable new_auteur cursor.execute('INSERT INTO tb_theme VALUES(?,?)',new_theme) 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 # Delete textbox after records entry_theme.delete(0,END)
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 def write_theme(): """ Saisie des thèmes """ #Déclaration global afin de pouvoir les exploiter en dehors de la fonction global entry_theme tpl_theme = Toplevel() #== Contructeur Toplevel == tpl_theme.title(" Bienvenue dans la saisie des thèmes") screen_x = int(tpl_theme.winfo_screenwidth()) screen_y = int(tpl_theme.winfo_screenheight()) tpl_theme_x = 400 tpl_theme_y =150 pos_x = (screen_x // 2) - (tpl_theme_x // 2) pos_y = (screen_y // 2) - (tpl_theme_y // 2) geo = "{}x{}+{}+{}".format(tpl_theme_x, tpl_theme_y, pos_x, pos_y) tpl_theme.geometry(geo) tpl_theme.resizable(width=False,height=False) # Fenêtre modifiable True or False tpl_theme.configure(bg='Gray79') # Champs de saisie --- theme_label = Label(tpl_theme, text="Thème",bg='Gray79', font=("Arial", 12,"bold")) theme_label.place(x=30,y=18) entry_theme = Entry (tpl_theme, width="30",font=("Century Gothic", 14,"bold")) entry_theme.place(x=30,y=45) #---- record_btn = Button(tpl_theme, text='Enregistrer', activebackground="SkyBlue1", command=lambda : save_theme(entry_theme.get())) record_btn.pack(side=BOTTOM, anchor=SE, padx=20, pady=20)
Et par contre là j'ai ce message d'erreur pour le fonction def save_auteur :
Là j'ai un problème avec les lignes 20 et 21 de la fonction def save_auteur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 command=lambda : save_auteur(entry_auteur.get(0,END), entry_info.get('1.0', END))) TypeError: get() takes 1 positional argument but 3 were given
le formulaire
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 def save_auteur(auteur_auteur, auteur_info): """ Insertion des données dans database tb_auteur """ try: connection = sqlite3.connect('mnesis.db') # Connection à la BdD cursor = connection.cursor() # création du curseur new_auteur = (cursor.lastrowid, auteur_auteur, auteur_info) # Récupération des valeurs des boutons # les (?,?,?) représentent les valeurs qui sont renseignées dans la variable new_auteur cursor.execute('INSERT INTO tb_auteur VALUES(?,?,?)',new_auteur) 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 # Delete textbox after records entry_auteur.delete(0,END) entry_info.delete(0, END)
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 def write_auteur(): """ Saisie des auteurs """ # Déclaration global afin de pouvoir les exploiter en dehors de la fonction global entry_auteur global entry_info tpl_auteur = Toplevel() #== Contructeur Toplevel == tpl_auteur.title(" Bienvenue dans la saisie des auteurs") screen_x = int(tpl_auteur.winfo_screenwidth()) screen_y = int(tpl_auteur.winfo_screenheight()) tpl_auteur_x = 1024 tpl_auteur_y = 600 pos_x = (screen_x // 2) - (tpl_auteur_x // 2) pos_y = (screen_y // 2) - (tpl_auteur_y // 2) geo = "{}x{}+{}+{}".format(tpl_auteur_x, tpl_auteur_y, pos_x, pos_y) tpl_auteur.geometry(geo) tpl_auteur.resizable(width=False,height=False) # Fenêtre modifiable True or False tpl_auteur.configure(bg='Gray79') auteur_label = Label(tpl_auteur, text="Auteur",bg='Gray79', font=("Arial", 12,"bold")) auteur_label.place(x=30,y=38) entry_auteur = Entry (tpl_auteur, width="50",font=("Century Gothic", 14,"bold")) entry_auteur.place(x=30,y=65) info_label = Label(tpl_auteur, text="Information",bg='Gray79', font=("Arial", 12,"bold")) info_label.place(x=30,y=100) entry_info = Text(tpl_auteur, width="106", height="18",font=("Century Gothic", 12)) entry_info.place(x=30,y=127) #---- record_btn = Button(tpl_auteur, text='Enregistrer', activebackground="SkyBlue1", command=lambda : save_auteur(entry_auteur.get(0,END), entry_info.get(0, END))) record_btn.pack(side=BOTTOM, anchor=SE, padx=20, pady=20)
Partager