Connettersi a MySQL con Python

Scritto da Jacopo Nuzzi (http://www.jacoz.net) il 06 agosto 2008

Ciao,
in questo articolo vedremo brevemente come connettersi ad un database MySQL con python.

Per utilizzare MySQL con python è necessario avere installato il modulo MySQLdb.
Per verificare la corretta installazione della libreria o per leggere le istruzioni per installarla è consigliata la lettura dell'articolo: Installare la libreria MySQLdb.

Per prima cosa creiamo un nuovo file e chiamiamolo mysql-test.py, ecco il codice da inserire:

PYTHON
#!/usr/bin/env python

import MySQLdb

db = MySQLdb.connect(host='', user='', passwd='', db='')
cursor = db.cursor()
cursor.execute('SELECT * FROM tabella')
results = cursor.fetchall()

for res in results:
   print '<li>' + res[0]

Questo semplice codice permette di mostrare i risultati di una tabella.
Chiaramente questo è solo un esempio ed infatti è estramamente semplice.

Vediamo ora di comprendere le poche righe elencate sopra:
  • Alla prima riga troviamo il percorso per far riconoscere al server il tipo di programma che stiamo eseguendo, in questo caso python
  • Dopodichè troviamo l'inclusione della libreria MySQLdb
  • La riga sotto è riportata la stringa di connessione al database mysql, i campi (host, user, passwd e db) sono stati lasciati volutamente vuoti e sono ovviamente da riempire con i dati di connessione.
    Al momento della connessione potrebbe esserci un errore quindi basterà aggiungere ai vari campi questo: unix_socket='/tmp/mysql.sock'
  • Sotto troviamo il cursore che ci servirà per ricavare i vari dati dal nostro database
  • Poi abbiamo l'esecuzione della query Sql (da modificare in base alle proprie esigenze)
  • Infine abbiamo un semplice ciclo for che ci serve per mostrare i vari records ottenuti


In caso ci possa essere la necessità di ottenere il numero di record basterà usare il seguente comando:

PYTHON
# ... quì il codice precedente!

numrows = int(cursor.rowcount)


Per limitare la selezione dei record al posto della funzione fetchall() basterà usare la funzione fetchmany(), ecco unb esempio pratico:

PYTHON
results = cursor.fetchmany(5)






Pagine totali: 2 [ 1 2 ]

Online:

Ci sono 18 utenti online, 1 della community e 17 ospiti.
Etinerando

Partners:

Renegade MotorhomesVegas HotelLoanPhoenix PoolsDevSpy.comGiornale WebmasterMrWebmaster.itServerplan