Python fornisce diversi modi per connettersi a un database MySQL ed elaborare i dati. Questo articolo descrive tre metodi.
I database MySQL e gli utenti devono già esistere prima di poter utilizzare uno dei seguenti metodi. Per informazioni su come gestire i database MySQL utilizzando cPanel, vedere questo articolo.Connessione a MySQL tramite Python
Prima di poter accedere ai database MySQL utilizzando Python, devi installare uno (o più) dei seguenti pacchetti in un ambiente virtuale:
- mysqlclient :questo pacchetto contiene MySQLdb modulo. È scritto in C ed è uno dei pacchetti Python più comunemente usati per MySQL.
- mysql-connector-python :questo pacchetto contiene mysql.connector modulo. È scritto interamente in Python.
- PyMySQL :questo pacchetto contiene pymysql modulo. È scritto interamente in Python.
Tutti e tre questi pacchetti utilizzano l'API del database SQL portatile di Python. Ciò significa che se passi da un modulo all'altro, puoi riutilizzare quasi tutto il codice esistente (l'esempio di codice seguente mostra come farlo).
Configurazione dell'ambiente virtuale Python e installazione di un pacchetto MySQL
Per configurare l'ambiente virtuale Python e installare un pacchetto MySQL, segui questi passaggi:
- Accedi al tuo account utilizzando SSH.
- Per creare un ambiente virtuale, digita i seguenti comandi:
cd ~ virtualenv sqlenv
- Il virtuale comando crea un ambiente virtuale denominato sqlenv e i comandi successivi in questa procedura presuppongono che l'ambiente sia denominato sqlenv . Puoi utilizzare qualsiasi nome di ambiente che desideri, ma assicurati di sostituire tutte le occorrenze di sqlenv con il nome dell'ambiente.
- Se stai eseguendo una versione alternativa di Python (ad esempio, hai configurato manualmente una versione Python più recente per il tuo account come descritto in questo articolo), puoi specificare quella versione per l'ambiente virtuale. Ad esempio, per installare una versione di Python 3.8 configurata dall'utente nell'ambiente virtuale, è possibile utilizzare il comando seguente:
virtualenv -p /home/username/bin/python3.8 sqlenv
-
Per attivare l'ambiente virtuale, digitare il seguente comando:
source sqlenv/bin/activate
Il prompt dei comandi ora inizia con (sqlenv) per indicare che stai lavorando in un ambiente virtuale Python. Tutti i seguenti comandi in questa procedura presuppongono che si stia lavorando all'interno dell'ambiente virtuale. Se esci dalla sessione SSH (o disattivi l'ambiente virtuale utilizzando il pulsante disattiva comando), assicurati di riattivare l'ambiente virtuale prima di seguire i passaggi seguenti ed eseguire il codice di esempio. -
Per aggiornare pip nell'ambiente virtuale, digita il seguente comando:
pip install -U pip
-
Digita il comando per il pacchetto che vuoi installare:
- Per installare mysqlclient pacchetto, digita il seguente comando:
pip install mysqlclient
-
Per installare mysql-connector-python pacchetto, digita il seguente comando:
pip install mysql-connector-python
-
Per installare pymysql pacchetto, digita il seguente comando:
pip install pymysql
- Per installare mysqlclient pacchetto, digita il seguente comando:
Esempio di codice
Dopo aver installato un pacchetto MySQL nell'ambiente virtuale, sei pronto per lavorare con i database reali. Il codice Python di esempio seguente mostra come eseguire questa operazione, nonché quanto sia facile passare da un'implementazione all'altra del pacchetto SQL. Il codice di esempio funziona con Python 2.7 e Python 3.x.
Nel tuo codice, sostituisci nome utente con il nome utente del database MySQL, password con la password dell'utente del database e dbname con il nome del database:
#!/usr/bin/python from __future__ import print_function hostname = 'localhost' username = 'username' password = 'password' database = 'dbname' # Simple routine to run a query on a database and print the results: def doQuery( conn ) : cur = conn.cursor() cur.execute( "SELECT fname, lname FROM employee" ) for firstname, lastname in cur.fetchall() : print( firstname, lastname ) print( "Using mysqlclient (MySQLdb):" ) import MySQLdb myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using mysql.connector:" ) import mysql.connector myConnection = mysql.connector.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using pymysql:" ) import pymysql myConnection = pymysql.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close()
Questo esempio crea una serie di Connessioni oggetti che aprono lo stesso database utilizzando diversi moduli MySQL. Poiché tutti e tre i moduli MySQL utilizzano l'interfaccia API del database SQL portatile, sono in grado di utilizzare il codice in doQuery() funzione senza alcuna modifica.
Quando hai una connessione oggetto associato a un database, puoi creare un Cursore oggetto. Il Cursore l'oggetto ti consente di eseguire execute() metodo, che a sua volta consente di eseguire istruzioni SQL grezze (in questo caso, un SELECT query su una tabella denominata dipendente ).
Come puoi vedere, l'API del database SQL portatile di Python semplifica il passaggio da un modulo MySQL all'altro nel tuo codice. Nell'esempio precedente, le uniche modifiche al codice necessarie per utilizzare un modulo diverso riguardano l'importazione e connetti dichiarazioni.Maggiori informazioni
- Per ulteriori informazioni sull'API del database SQL portatile di Python, visitare https://www.python.org/dev/peps/pep-0249.
- Per ulteriori informazioni su mysqlclient pacchetto, visita https://pypi.org/project/mysqlclient.
- Per ulteriori informazioni su mysql-connector-python pacchetto, visita https://pypi.python.org/pypi/mysql-connector-python.
- Per ulteriori informazioni su PyMySQL pacchetto, visita https://pypi.python.org/pypi/PyMySQL.