· 4 years ago · Feb 23, 2021, 09:38 PM
1import sqlite3
2from tkinter import *
3
4root = Tk()
5root.title("Interface")
6root.geometry("350x100")
7
8fichierBDD = "Projet.db"
9conn = sqlite3.connect(fichierBDD)
10cur = conn.cursor()
11
12fermer=root.destroy
13
14cur.execute("DROP TABLE IF EXISTS student")
15cur.execute("DROP TABLE IF EXISTS archive")
16cur.execute("DROP TABLE IF EXISTS contact")
17cur.execute("DROP TABLE IF EXISTS postbac")
18cur.execute("DROP TABLE IF EXISTS actual")
19cur.execute("DROP TABLE IF EXISTS company")
20
21login="directeur"
22mdp="admin"
23
24mdpLabel=Label(root,text="Entrez votre mot de passe")
25mdpEntry=Entry(root)
26mdpLabel.grid(row=0,column=3,padx=20,pady=2)
27mdpEntry.grid(row=1,column=3,padx=20,pady=2)
28
29loginLabel=Label(root,text="Entrez votre login")
30loginEntry=Entry(root)
31loginLabel.grid(row=0,column=2,padx=20,pady=2)
32loginEntry.grid(row=1,column=2,padx=20,pady=2)
33
34boutonValider=Button(root,text="Confirmer",command=lambda:[recup(login,mdp)])
35boutonValider.grid(row=2,column=2,columnspan=2,padx=10,pady=2)
36
37def recup(login,mdp):
38 login_entré=loginEntry.get()
39 mdp_entré=mdpEntry.get()
40 if login != login_entré:
41 print("Login ou mot de passe erroné")
42 root.destroy()
43 sys.exit()
44 elif mdp != mdp_entré:
45 print("Login ou mot de passe erroné")
46 root.destroy()
47 sys.exit()
48 else:
49 root.destroy()
50 pass
51
52root.mainloop()
53
54def ask():
55 global fermer
56 root = Tk()
57 label = Label(root, text="Voulez vous insérer les valeurs test ?")
58 label.pack()
59 bouton=Button(root, text="Oui", command=valeursdefaut).pack(side=LEFT, padx=50, pady=5)
60 bouton2=Button(root, text="Non", command=root.destroy).pack(side=RIGHT, padx=50, pady=5)
61
62def demande():
63 root = Tk()
64 label = Label(root, text="Voulez vous réaliser une requête SQL ?")
65 label.pack()
66 bouton=Button(root, text="Oui", command=requetes).pack(side=LEFT, padx=50, pady=5)
67 bouton2=Button(root, text="Non", command=end).pack(side=RIGHT, padx=50, pady=5)
68
69
70def end():
71 root.destroy()
72 sys.exit()
73
74
75def requetes():
76 root = Tk()
77 sqlLabel=Label(root,text="Entrez votre requête SQL")
78 sqlEntry=Entry(root)
79 sqlLabel.grid(row=0,column=2,padx=20,pady=2)
80 sqlEntry.grid(row=1,column=2,padx=20,pady=2)
81 boutonValider=Button(root,text="Confirmer",command=lambda:[sauvegarde(sqlEntry.get())])
82 boutonValider.grid(row=2,column=2,columnspan=2,padx=10,pady=2)
83
84
85def sauvegarde(sql):
86 cur.execute(sql)
87
88creationTableStudent = '''CREATE TABLE student (
89 id_student int NOT NULL,
90 name VARCHAR(35),
91 birth DATE,
92 PRIMARY KEY (id_student));'''
93
94creationTableArchive = '''CREATE TABLE archive (
95 id_archive int NOT NULL,
96 id_student int NOT NULL,
97 year YEAR,
98 specialties TEXT,
99 options VARCHAR(45),
100 PRIMARY KEY (id_archive),
101 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
102
103creationTableContact = '''CREATE TABLE contact (
104 id_contact int NOT NULL,
105 id_student int NOT NULL,
106 mail VARCHAR(320),
107 tel BIGINT,
108 city VARCHAR(85),
109 postal MEDIUMINT UNSIGNED,
110 PRIMARY KEY (id_contact),
111 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
112
113creationTablePostBac = '''CREATE TABLE postbac (
114 id_postbac int NOT NULL,
115 id_student int NOT NULL,
116 year YEAR,
117 studies TEXT,
118 job TEXT,
119 PRIMARY KEY (id_postbac),
120 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
121
122creationTableActual = '''CREATE TABLE actual (
123 id_actual int NOT NULL,
124 id_student int NOT NULL,
125 city VARCHAR(85),
126 postal MEDIUMINT UNSIGNED,
127 job TEXT,
128 studies TEXT,
129 PRIMARY KEY (id_actual),
130 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
131
132creationTableCompany = '''CREATE TABLE company (
133 id_company int NOT NULL,
134 id_student int NOT NULL,
135 tel BIGINT,
136 mail VARCHAR(320),
137 fax BIGINT,
138 postal MEDIUMINT UNSIGNED,
139 city VARCHAR(85),
140 adress TEXT,
141 siret BIGINT,
142 head_office TEXT,
143 field VARCHAR(100),
144 PRIMARY KEY (id_company),
145 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
146
147def valeursdefaut():
148 fermer
149 entreesTableStudent = '''
150 (667,'Freeze Corleone','1992-06-06'),
151 (2012,'Julie Gayet','1972-06-03');
152 '''
153
154 entreesTableArchive = '''
155 (1,667,'2019','HGGSP,NSI,Mathématiques',Null),
156 (2,2012,'2019','Physique-Chimie,SVT,Mathématiques','Sport'),
157 (3,667,'2020','NSI,Mathématiques',Null),
158 (4,2012,'2020','Physique-Chimie,SVT','Maths expertes');
159 '''
160
161 entreesTableContact = '''
162 (1,667,'freeze.corleone@gmail.com','0652061122','Bayonne',64100),
163 (2,2012,'julie.gayet@gmail.com','0638432302','Paris',75000);
164 '''
165
166 entreesTablePostBac = '''
167 (1,667,'2021','Commerce Thalis',Null),
168 (2,2012,'2021','Rouge International',Null),
169 (3,667,'2021',Null,'Ostréiculteur');
170 '''
171
172 entreesTableActual = '''
173 (1,667,'Bayonne',64100,'Ostréiculteur',Null),
174 (2,2012,'Paris',75000,"Chef d'entreprise",Null);
175 '''
176
177 entreesTableCompany = '''
178 (1,667,0559568214,'ostréiculture.huîtres@gmail.com',Null,64100,'Bayonne','Rue Tour de Sault',36252187900034,Null,'Elevage'),
179 (2,2012,0555464214,'rouge.international@gmail.com',0144431101,75000,'Paris','47 rue Gay Lussac',286970447,'47 rue Gay Lussac','Audiovisuel');
180 '''
181
182
183 cur.execute(creationTableStudent)
184 cur.execute(creationTableArchive)
185 cur.execute(creationTableContact)
186 cur.execute(creationTablePostBac)
187 cur.execute(creationTableActual)
188 cur.execute(creationTableCompany)
189 cur.execute("INSERT INTO student (id_student,name,birth) VALUES "+entreesTableStudent)
190 cur.execute("INSERT INTO archive (id_archive,id_student,year,specialties,options) VALUES "+entreesTableArchive)
191 cur.execute("INSERT INTO contact (id_contact,id_student,mail,tel,city,postal) VALUES "+entreesTableContact)
192 cur.execute("INSERT INTO postbac (id_postbac,id_student,year,studies,job) VALUES "+entreesTablePostBac)
193 cur.execute("INSERT INTO actual (id_actual,id_student,city,postal,job,studies) VALUES "+entreesTableActual)
194 cur.execute("INSERT INTO company (id_company,id_student,tel,mail,fax,postal,city,adress,siret,head_office,field) VALUES "+entreesTableCompany)
195ask()
196demande()
197
198
199conn.commit()
200cur.close()
201conn.close()