Moltes aplicacions actuals (tant d'escriptori com web) usen una base de dades com complement per desar informació referent a un usuari, clients, productes, etc. En aquest punt veurem una forma de connectar el que ja sabem fer amb Python amb una base de dades SQLite per tal de poder fer aplicacions més sofísticades. D'aquesta manera, juntarem el que varem estudiar a començament de curs sobre BBDD i tot el que hem fet dins d'aquesta unitat.
El primer que s'ha de tenir clar és que per a què Python i SQLite treballin junts, s'han de poder comunicar entre ells. Això es fa mitjançant un codi que s'introdueix a les nostres aplicacions i que rep el nom de connector.
Per veure un exemple complet de connexió, analitza el següent codi. Com creus que funciona la connexió amb la base de dades (Què són 'db' i 'c')? Què penses que fan els mètodes 'execute' i 'fetchall'? I els 'messabox.showinfo()' i 'messagebox.showerror()'?
Exercicis:
1. Fent servir el codi de l'exemple anterior, crea una finestra que permeti comprovar les credencials d'un usuari (finestra de login) semblant a la de la imatge.
2. Afegeix a la base de dades 'agenda.db' (o el nom que hagis posat tu) un registre a la taula 'usuarios' amb el teu nom i contrasenya, introdueix el codi al teu programa i prova-ho. Fes-ho amb sqlite3 per tal de practicar els comandaments SQL i comprova que ho fas bé amb sqlitebrowser.
3. Ara que ja tenim el codi per fer login, analitza les modificacions següents i la funció 'agenda()' afegida. Pensa en el sentit de l'atribut 'global' i modifica el teu programa perquè al execurtar-lo i fer login aparegui una finestra com la de la imatge (s'han d'afegir les etiquetes, caixes de text,...).
4. Afegeix al programa "agenda" el codi necessari per cada botó. Fixat en que "Nou registre" i "Cercar" hauran d'executar sobre el cursor alguna sentència SQL. Utilitza el glosari de comandaments SQL de Codecademy per escriure la sentència correcta.
5. Crea un contacte per cada company de la classe amb el botó nou registre i comprova que es desen correctament dins la base de dades. Utilitza el botó "Cercar" per trobar qualque company i veure que tot funciona correctament.
6. Per finalitzar, modifica el programa perquè aparegui al iniciar-se una finestra que permeti fer "login" o "sign up". Si l'usuari tria "login", el fluxe haurà de continuar cap a l'agenda que ja tenim feta, però si tria "sign up", haurà de crear una finestra que permeti generar un usuari nou amb el seu corresponent registre a la taula d'usuaris i una taula pròpia de contactes.