Mysql
 sql >> Database >  >> RDS >> Mysql

Come mi collego a un database MySQL in Python?

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.