Durante questo fine settimana mi sono un po concentrato sull’utilizzo di python per gestire uno dei database piu famosi al mondo, MySql. Avevo già scritto qualche cosa ma ho voluto creare una interfaccia visuale al semplice e potente client da riga di comando. Il programmino è scritto in python e QT come librerie grafiche, il perché non lo so, forse la settimana prossima faro un porting su GTK. Per il momento il programmino non fa altro che eseguire delle query e fornire i risultati. Ma vediamo velocemente come creare un piccolo script per eseguire delle query su un db Mysql. Per prima cosa abbiamo bisogno del modulo che permette a python di interagire con Mysql, il suo nome è python-MySqldb per installarlo su sistemi Debian based basta digitare, da amministratore:

# apt-get install python-MySqldb

a questo punto abbiamo tutto il necessario per iniziare . Per prima cosa apriamo il nostro nuovo file .py nel nostro editor preferito ed iniziamo con l’importare il modulo:

import MySQLdb

a questo punto non ci resta che creare una connessione con il DB:

 conn = MySQLdb.connect (host = "localhost",
                           user = "testuser",
                           passwd = "testpass",
                           db = "test")

ora abbiamo un oggetto connessione che punta ad un database all’indirizzo “localhost” con utente “testuser” e password “testpassword” ed abbiamo chiesto di utilizzare il database “test”. Una volta ottenuta la connessione abbiamo bisogno di qualcosa che ci indichi sempre come e dove comunicare con il DB quindi creiamo un oggetto cursore:

cursor = conn.cursor()

Fatto questo ora possiamo iniziare ad interrogare il nostro DB lanciando delle query semplicemente lanciandole attraverso il metodo appropriato:

cursor.execute ("SELECT * FROM testtable")

dove estraiamo tutto il contenuto della tabella “testtable” all’interno del DB “test” per vedere il risultato della query abbiamo bisogno di prendercelo:

   row = cursor.fetchone ()
   print row

Quindi avremo stamapato a schermo il risultato dell’interrogazione. Gli statement sopra non sono ilmassimo dato che potremmo avere piu righe e piu colonne per ogni riga quindi sarebbe meglio ciclare, magari con un for, sul risultato e poi utilizzarlo come meglio crediamo.
Possiamo fare tutte le interrogazioni che vogliamo l’importante è lanciarle con il metodo “execute” l’importante è che al termine di tutte le nostre operazioni chiudiamo la connessione con il DB eseguendo un:

   cursor.close()
   conn.close()

Sinceramente la chiusura del cursore al momento mi da errore ma non so non ho letto per bene la documentazione, quindi assicuratevi di chiudere almeno la connessione con il db. Questo e tutto non vi resta che mettervi e provare, per maggiori info potete visitare il sito del modulo su SourceForge.
Se invece volete usare il mio programmino, chiamato QSql potete scaricarlo dal link qui sotto. Ogni commento o critica è benvenuta, per qualsiasi chiarimento non vi resta che chiedere.

QSql v1.0 QSql v 1.0

– Fine –
Post scritto con KBlogo