· 4 years ago · Feb 23, 2021, 11:38 PM
1import sqlite3
2from tkinter import *
3
4root = Tk()
5root.title("Interface")
6root.geometry("350x100")
7
8fichierBDD = "Projet.sq3"
9conn = sqlite3.connect(fichierBDD)
10cur = conn.cursor()
11
12cur.execute("DROP TABLE IF EXISTS student")
13cur.execute("DROP TABLE IF EXISTS archive")
14cur.execute("DROP TABLE IF EXISTS contact")
15cur.execute("DROP TABLE IF EXISTS postbac")
16cur.execute("DROP TABLE IF EXISTS actual")
17cur.execute("DROP TABLE IF EXISTS company")
18
19login="Test"
20mdp="Test"
21
22mdpLabel=Label(root,text="Entrez votre mot de passe")
23mdpEntry=Entry(root)
24mdpLabel.grid(row=0,column=3,padx=20,pady=2)
25mdpEntry.grid(row=1,column=3,padx=20,pady=2)
26
27loginLabel=Label(root,text="Entrez votre login")
28loginEntry=Entry(root)
29loginLabel.grid(row=0,column=2,padx=20,pady=2)
30loginEntry.grid(row=1,column=2,padx=20,pady=2)
31
32boutonValider=Button(root,text="Confirmer",command=lambda:[récup()])
33boutonValider.grid(row=2,column=2,columnspan=2,padx=10,pady=2)
34
35def récup():
36 login_entré=loginEntry.get()
37 mdp_entré=mdpEntry.get()
38 verification(login,mdp,login_entré,mdp_entré)
39
40def verification(login,mdp,login_entré,mdp_entré):
41 if login != login_entré:
42 print("Login ou mot de passe erroné")
43 root.destroy()
44 sys.exit()
45 elif mdp != mdp_entré:
46 print("Login ou mot de passe erroné")
47 root.destroy()
48 sys.exit()
49 else:
50 root.destroy()
51 executer()
52 pass
53
54nombre=0
55def demande(nombre):
56 if nombre==0:
57 root = Tk()
58 root.title("Interface")
59 root.geometry("720x320")
60 demandeLabel=Label(root,text="Voulez vous réaliser une requête SQL ? (OUI / NON)")
61 demandeEntry=Entry(root)
62 demandeLabel.grid(row=0,column=2,padx=20,pady=2)
63 demandeEntry.grid(row=1,column=2,padx=20,pady=2)
64 avertissementLabel=Label(root,text="Veuillez respecter la syntaxe, l'ordre et les majuscules")
65 avertissementLabel.grid(row=4,column=2,padx=20,pady=2)
66 boutonValider=Button(root,text="Confirmer",command=lambda:[recuperation(demandeEntry.get())])
67 boutonValider.grid(row=2,column=2,columnspan=2,padx=10,pady=2)
68 root.mainloop()
69
70 #root.destroy()
71def recuperation(resultat):
72 print(resultat)
73 validerdemande(resultat)
74
75def validerdemande(resultat):
76 global nombre
77 if resultat=="NON":
78 sys.exit()
79 elif resultat=="OUI":
80 requetes()
81
82def requetes():
83 root = Tk()
84 root.title("Interface")
85 root.geometry("720x320")
86 sqlLabel=Label(root,text="Entrez votre requête SQL")
87 sqlEntry=Entry(root)
88 sqlLabel.grid(row=0,column=2,padx=20,pady=2)
89 sqlEntry.grid(row=1,column=2,padx=20,pady=2)
90 boutonValider=Button(root,text="Confirmer",command=lambda:[sauvegarde(sqlEntry.get())])
91 boutonValider.grid(row=2,column=2,columnspan=2,padx=10,pady=2)
92
93def sauvegarde(sql):
94 cur.execute(sql)
95
96creationTableStudent = '''CREATE TABLE student (
97
98 id_student int NOT NULL,
99
100 name VARCHAR(35),
101
102 birth DATE,
103
104 PRIMARY KEY (id_student));'''
105
106creationTableArchive = '''CREATE TABLE archive (
107
108 id_archive int NOT NULL,
109
110 id_student int NOT NULL,
111
112 year YEAR,
113
114 specialties TEXT,
115
116 options VARCHAR(45),
117
118 PRIMARY KEY (id_archive),
119
120 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
121
122creationTableContact = '''CREATE TABLE contact (
123
124 id_contact int NOT NULL,
125
126 id_student int NOT NULL,
127
128 mail VARCHAR(320),
129
130 tel BIGINT,
131
132 city VARCHAR(85),
133
134 postal MEDIUMINT UNSIGNED,
135
136 PRIMARY KEY (id_contact),
137
138 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
139
140creationTablePostBac = '''CREATE TABLE postbac (
141
142 id_postbac int NOT NULL,
143
144 id_student int NOT NULL,
145
146 year YEAR,
147
148 studies TEXT,
149
150 job TEXT,
151
152 PRIMARY KEY (id_postbac),
153
154 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
155
156creationTableActual = '''CREATE TABLE actual (
157
158 id_actual int NOT NULL,
159
160 id_student int NOT NULL,
161
162 city VARCHAR(85),
163
164 postal MEDIUMINT UNSIGNED,
165
166 job TEXT,
167
168 studies TEXT,
169
170 PRIMARY KEY (id_actual),
171
172 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
173
174creationTableCompany = '''CREATE TABLE company (
175
176 id_company int NOT NULL,
177
178 id_student int NOT NULL,
179
180 tel BIGINT,
181
182 mail VARCHAR(320),
183
184 fax BIGINT,
185
186 postal MEDIUMINT UNSIGNED,
187
188 city VARCHAR(85),
189
190 adress TEXT,
191
192 siret BIGINT,
193
194 head_office TEXT,
195
196 field VARCHAR(100),
197
198 PRIMARY KEY (id_company),
199
200 FOREIGN KEY (id_student) REFERENCES student(id_student));'''
201
202
203entreesTableStudent = '''
204
205(667,'Freeze Corleone','1992-06-06'),
206
207(2012,'Julie Gayet','1972-06-03');
208'''
209
210entreesTableArchive = '''
211
212(1,667,'2019','HGGSP,NSI,Mathématiques',Null),
213
214(2,2012,'2019','Physique-Chimie,SVT,Mathématiques','Sport'),
215
216(3,667,'2020','NSI,Mathématiques',Null),
217
218(4,2012,'2020','Physique-Chimie,SVT','Maths expertes');
219
220'''
221
222entreesTableContact = '''
223
224(1,667,'freeze.corleone@gmail.com','0652061122','Bayonne',64100),
225
226(2,2012,'julie.gayet@gmail.com','0638432302','Paris',75000);
227
228'''
229
230entreesTablePostBac = '''
231
232(1,667,'2021','Commerce Thalis',Null),
233
234(2,2012,'2021','Rouge International',Null),
235
236(3,667,'2021',Null,'Ostréiculteur');
237
238'''
239
240entreesTableActual = '''
241
242(1,667,'Bayonne',64100,'Ostréiculteur',Null),
243
244(2,2012,'Paris',75000,"Chef d'entreprise",Null);
245
246'''
247
248entreesTableCompany = '''
249
250(1,667,0559568214,'ostréiculture.huîtres@gmail.com',Null,64100,'Bayonne','Rue Tour de Sault',36252187900034,Null,'Elevage'),
251
252(2,2012,0555464214,'rouge.international@gmail.com',0144431101,75000,'Paris','47 rue Gay Lussac',286970447,'47 rue Gay Lussac','Audiovisuel');
253
254'''
255
256def executer():
257 global nombre
258 cur.execute(creationTableStudent)
259 cur.execute(creationTableArchive)
260 cur.execute(creationTableContact)
261 cur.execute(creationTablePostBac)
262 cur.execute(creationTableActual)
263 cur.execute(creationTableCompany)
264 cur.execute("INSERT INTO student (id_student,name,birth) VALUES "+entreesTableStudent)
265 cur.execute("INSERT INTO archive (id_archive,id_student,year,specialties,options) VALUES "+entreesTableArchive)
266 cur.execute("INSERT INTO contact (id_contact,id_student,mail,tel,city,postal) VALUES "+entreesTableContact)
267 cur.execute("INSERT INTO postbac (id_postbac,id_student,year,studies,job) VALUES "+entreesTablePostBac)
268 cur.execute("INSERT INTO actual (id_actual,id_student,city,postal,job,studies) VALUES "+entreesTableActual)
269 cur.execute("INSERT INTO company (id_company,id_student,tel,mail,fax,postal,city,adress,siret,head_office,field) VALUES "+entreesTableCompany)
270 demande(nombre)
271
272root.mainloop()
273conn.commit()
274cur.close()
275conn.close()