AU : 2022-2023
Responsable du cours : Mme Ines Turki Khemakhem
Equipe pédagogique : Mme Nahla Fendri
Auditoire : 3ème e-business
Travaux Pratiques N°5 : SQLITE3
Langage de programmation évolué : PYTHON
Exercice :
Ecrire un programme Python [Link] utilisant la bibliothèque tkinter qui permet de tracer un
formulaire de taille 400x400 (figure ci-dessus) contenant :
- Entry1, Entry2, Entry3 pour saisir respectivement la matricule, le prénom et le nom
d’un étudiant.
- Un bouton Quitter qui permet de quitter l’application
- Un bouton Ajouter pour ajouter un nouvel étudiant
- Un bouton réinitialiser.
Lors du clic sur le bouton ajouter, la matricule, le prénom et le nom de l’étudiant seront insérés
dans la base ‘[Link]’ et le message « ajout avec succès » est affiché.
Une fois le bouton ajouter est cliqué, sans avoir remplir l’un des champs de saisie, un message
s’affiche « vous devez remplir les champs !!! »
~1~
AU : 2022-2023
Création de la base
import sqlite3
#----------------------------------------------------------------------------------------------------------------
#----------------------------------------------------------connexion bd-------------------------------------
# creation de la base
conn = [Link]("[Link]")
# Créer un cursor
cur = [Link] ()
# Création de la requete
req = "CREATE TABLE ETUDIANT ( id INTEGER PRIMARY KEY AUTOINCREMENT,
matricule TEXT NOT NULL, nom TEXT NOT NULL, prenom TEXT NOT NULL)"
# Exécution de la requete
cur . execute(req)
# Envoyer la requete
conn .commit()
# Fermer la connexion
conn . close
[Link]
from tkinter import *
import sqlite3
from [Link] import * # boîte de dialogue
# initialiser
def initialiser ():
[Link] (0, END)
[Link] (0, END)
[Link] (0, END)
m.focus_set()
~2~
AU : 2022-2023
# affichage
def affiche():
[Link](0, END)
conn = [Link]("[Link]")
cur = conn . cursor ()
[Link]("SELECT * FROM ETUDIANT")
r = [Link]()
for e in range(len(r)):
[Link](e, r[e])
[Link]()
# ajouter
def ajouter():
champnom = [Link]()
champprenom = [Link]()
champmat = [Link]()
if champnom != "" and champprenom != "" and champmat != "":
conn = [Link]("[Link]")
cur = conn . cursor ()
cur . execute("Insert into ETUDIANT (matricule, nom, prenom) values (
?,?,?)",(champmat,champnom , champprenom) )
conn .commit()
conn . close ()
showinfo("Résultat", "Ajout avec succés")
affiche()
else:
showwarning("Résultat","Vous devez remplir les champs!!!!")
~3~
AU : 2022-2023
#--------------------------------------------------------------Creation de la fenetre------------------------
------------
fen = Tk () # la fenêtre de l'application
[Link]('Formulaire')
[Link]('400x400')
[Link](background='white')
#creation titre principal
titre = Label (fen, bg="white",text="Remplir Formulaire",fg="red",font="broadway 18 bold")
[Link]()
#creation des frames
# *******frame 1
Frame1 = Frame(fen,bg="ivory",borderwidth=2, relief="groove")
[Link](fill="x",ipadx=5,ipady=5)
# *******frame 2
Frame2 = Frame(fen,bg="ivory",borderwidth=2, relief="groove")
[Link](fill="x",ipadx=5,ipady=5)
# *******frame 3
Frame3 = Frame(fen,bg="ivory",borderwidth=2, relief="sunken")
[Link](fill="x",ipadx=5,ipady=5)
#creation des labels
#matricule
mat = Label (Frame1,bg="ivory", text="Matriucle étudiant :",fg="red",font=("Courier", 10),
justify="left")
[Link] (row = 2, column = 2)
#prenom
prenom = Label (Frame1,bg="ivory", text="Prénom étudiant:",fg="red",font=("Courier", 10),
justify="left")
[Link] (row = 3, column = 2)
#nom
nom = Label (Frame1,bg="ivory", text="Nom étudiant:",fg="red",font=("Courier", 10),
justify="left")
[Link] (row = 4, column = 2)
~4~
AU : 2022-2023
#creation des champs du texte
#champ matricule
mm = StringVar()
m = Entry (Frame1, textvariable=mm)
[Link] (row = 2, column = 3)
m.focus_set()
# champ prenom
pp= StringVar()
p = Entry (Frame1, textvariable=pp)
[Link] (row = 3, column = 3)
#champ nom
nn= StringVar()
n = Entry (Frame1, textvariable=nn)
[Link] (row = 4, column = 3)
# les boutons et leur gestion
# Créer un objet photoimage pour utiliser l'image
photoA = PhotoImage(file = "[Link]")
photoQ = PhotoImage(file = "[Link]")
photoR = PhotoImage(file = "[Link]")
BQ = Button (Frame2, text=' Quitter ',image=photoQ, compound="right", command=quit)
[Link] (side="left",padx = 10)
BV = Button (Frame2, text=' Ajouter ', image=photoA, compound="left", command=ajouter)
[Link] (side="left",padx = 10)
BI = Button (Frame2, text=' Réinitialiser ', image=photoR, compound="left",
command=initialiser)
[Link] (side="left",padx = 10)
liste = Listbox(Frame3, width=50, font="courier 12 italic")
[Link]()
~5~
AU : 2022-2023
#remplissage de listBox
affiche()
#boucle infinie
[Link]()
~6~