Connessione a MySQL con Python 2 in tre passaggi
1 - Impostazione
Devi installare un driver MySQL prima di fare qualsiasi cosa. A differenza di PHP, solo il driver SQLite è installato di default con Python. Il pacchetto più utilizzato per farlo è MySQLdb ma è difficile installarlo usando easy_install. Tieni presente che MySQLdb supporta solo Python 2.
Per gli utenti Windows, puoi ottenere un exe di MySQLdb .
Per Linux, questo è un pacchetto casuale (python-mysqldb). (Puoi usare sudo apt-get install python-mysqldb
(per distribuzioni basate su Debian), yum install MySQL-python
(per rpm) o dnf install python-mysql
(per la moderna distro fedora) nella riga di comando per il download.)
Per Mac, puoi installa MySQLdb utilizzando Macport .
2 - Utilizzo
Dopo l'installazione, riavvia. Questo non è obbligatorio, ma mi impedirà di rispondere a 3 o 4 altre domande in questo post se qualcosa va storto. Quindi, per favore, riavvia.
Quindi è proprio come usare qualsiasi altro pacchetto:
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="john", # your username
passwd="megajonhy", # your password
db="jonhydb") # name of the data base
# you must create a Cursor object. It will let
# you execute all the queries you need
cur = db.cursor()
# Use all the SQL you like
cur.execute("SELECT * FROM YOUR_TABLE_NAME")
# print all the first cell of all the rows
for row in cur.fetchall():
print row[0]
db.close()
Naturalmente, ci sono migliaia di possibilità e opzioni; questo è un esempio molto semplice. Dovrai guardare la documentazione. Un buon punto di partenza .
3 - Utilizzo più avanzato
Una volta che sai come funziona, potresti voler utilizzare un ORM per evitare di scrivere SQL manualmente e manipolare le tabelle come se fossero oggetti Python. L'ORM più famoso nella comunità Python è SQLAlchemy .
Ti consiglio vivamente di usarlo:la tua vita sarà molto più semplice.
Di recente ho scoperto un altro gioiello nel mondo Python:peewee . È un ORM molto leggero, davvero facile e veloce da configurare e quindi utilizzare. Mi rallegra la giornata per piccoli progetti o app autonome, dove l'uso di grandi strumenti come SQLAlchemy o Django è eccessivo:
import peewee
from peewee import *
db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy')
class Book(peewee.Model):
author = peewee.CharField()
title = peewee.TextField()
class Meta:
database = db
Book.create_table()
book = Book(author="me", title='Peewee is cool')
book.save()
for book in Book.filter(author="me"):
print book.title
Questo esempio funziona fuori dagli schemi. Nient'altro che avere peewee (pip install peewee
) è obbligatorio.