1 - 设置
您必须在执行任何操作之前安装 MySQL 驱动程序。与 PHP 不同,默认情况下只使用 Python 安装 SQLite 驱动程序。最常用的包是MySQLdb,但使用 easy_install 很难安装它。
对于 Windows 用户,您可以获得MySQLdb的exe 。
对于 Linux,这是一个休闲包(python-mysqldb)。 (您可以使用sudo apt-get install python-mysqldb
(用于基于 debian 的发行版), yum install MySQL-python
(用于基于 rpm),或者在命令行中使用dnf install python-mysql
(用于现代 fedora 发行版)进行下载。)
对于 Mac,您可以使用 Macport 安装 MySQLdb 。
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
)之外什么都不需要。
这是一种方法:
#!/usr/bin/python
import MySQLdb
# Connect
db = MySQLdb.connect(host="localhost",
user="appuser",
passwd="",
db="onco")
cursor = db.cursor()
# Execute SQL select statement
cursor.execute("SELECT * FROM location")
# Commit your changes if writing
# In this case, we are only reading data
# db.commit()
# Get the number of rows in the resultset
numrows = cursor.rowcount
# Get and display one row at a time
for x in range(0, numrows):
row = cursor.fetchone()
print row[0], "-->", row[1]
# Close the connection
db.close()
Oracle(MySQL)现在支持纯 Python 连接器。这意味着不需要安装二进制文件:它只是一个 Python 库。它被称为 “连接器 / Python”。