在Python中如何连接到MySQL数据库


在Python中如何连接到MySQL数据库

1 - 设置

您必须在执行任何操作之前安装MySQL驱动程序。与PHP不同,默认情况下只使用Python安装SQLite驱动程序。最常用的包是MySQLdb,但使用easy_install很难安装它。

对于Windows用户,您可以获得MySQLdb的可执行文件

对于Linux,这是一个Python包(python-mysqldb)。(您可以在命令行中使用sudo apt-get install python-mysqldb(对于基于debian的发行版),yum install MySQL-python(对于基于rpm的)或dnf install python-mysql(对于现代的fedora发行版)。)

2 - 用法

安装完成后,重启。这不是强制性的,但如果出现问题,它将阻止我在这篇文章中回答3或4个其他问题。所以请重新启动。

然后它就像使用任何其他包:

#!/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()

当然,有数千种可能性和选择; 这是一个非常基本的例子。您将不得不查看文档。一个很好的起点。

3 - 更高级的用法

一旦你知道它是如何工作的,你可能想要使用ORM来避免手动编写SQL并操纵你的表,因为它们是Python对象。SQL社区中最着名的ORM是SQLAlchemy。

我强烈建议你使用它:你的生活将变得更加容易。

我最近发现了Python世界中的另一颗宝石:peewee。这是一个非常精简的ORM,设置非常简单快捷,然后使用。它使我的小项目或独立应用程序的日子,使用像SQLAlchemy或Django这样的大工具是过度的:

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

此示例开箱即用。除了拥有peewee(pip install peewee)之外别无其他。