Usiamo la libreria pymysql, per i dettagli vai al sito https://pypi.org/project/pymysql/ per la connessione ad un database che puo essere sulla macchina locale oppure su un server remoto.
#connettiamoci ad un database remoto tramite libreira pymysql
import pymysql.cursors
#variabili
HOST ="indirizzo ip server"
DB = "database"
USER = "utente-db"
PASSWD = "password-db"
#creiamo l'istanza di collegamento al database
conn = pymysql.connect(host=HOST,user=USER,password=PASSWD,database=DB)
print(conn)
print(conn.host_info)
#chiudiamo la connessione al server
conn.close()
Il codice precedente non fa altro che instaurare un collegamento al database istanziando l’oggetto conn, con questo oggetto e’ possibile interagire sul database attraverso i suoi metodi.
Attraverso la print(conn.host_info) stamperemo l’ip e la porta di connessione al server sempre che la connessione sia andata a buon fine
Infine con l’istruzione conn.close() chiudiamo la connessione al server.
Ineragire con mysql
Vediamo un esempio con cui andiamo a leggere i record di una tabella.
id | fornitore |
1 | Mario Rossi |
2 | Giuseppe Verdi |
3 | Valerio Bianchi |
import pymysql.cursors
#variabili
HOST ="localhost"
DB = "businnesdb"
USER = "utente"
PASSWD = "password"
#creiamo l'istanza di collegamento al database
conn = pymysql.connect(host=HOST,user=USER,password=PASSWD,database=DB)
with conn:
with conn.cursor() as cursore:
#leggiamo un record
sql = "SELECT * FROM tabFornitori"
cursore.execute(sql)
result = cursore.fetchone()
print(result)
Questo codice stampera una tupla con all’interno il primo record dell atabella sopra descritta
(1, 'Mario Rossi')
Sostituendo l’istruzione result = cursore.fetchone() con l’istruzione result = cursore.fetchall() l’output sara’ una tupla di tuple contenente tutti i record della tabella.
((1,'Mario Rossi),(2, 'Giuseppe Verdi'),(3, 'Valerio Bianchi'))