操作数据库是最常见的任务,这里用MySQL来做演示,也是我们用的最多的一个开源数据库,其他都类似的。
对于安装MySQL就不做介绍了,安装完后,还需要安装去驱动。因为需要支持Python的MySQL驱动来连接到MySQL服务器。
MySQL的驱动有多种实现,比如纯python实现的pymysql和mysql-connector,或者mysql-python也就是MySQLdb。
这里我通过mysql-connector来介绍使用方法:1
pip install mysql-connector
我们演示如何连接到MySQL服务器的test数据库:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24# 导入MySQL驱动:
import mysql.connector
# 注意把password设为你的root口令:
'root', password='password', database='test') conn = mysql.connector.connect(user=
cursor = conn.cursor()
# 创建user表:
'create table user (id varchar(20) primary key, name varchar(20))') cursor.execute(
# 插入一行记录,注意MySQL的占位符是%s:
'insert into user (id, name) values (%s, %s)', ['1', 'Michael']) cursor.execute(
cursor.rowcount
1
# 提交事务:
conn.commit()
cursor.close()
# 运行查询:
cursor = conn.cursor()
'select * from user where id = %s', ('1',)) cursor.execute(
values = cursor.fetchall()
values
[('1', 'Michael')]
# 关闭Cursor和Connection:
cursor.close()
True
conn.close()
由于Python的DB-API定义都是通用的,所以,操作MySQL的数据库代码和SQLite类似。
执行INSERT等操作后要调用commit()提交事务,MySQL的SQL占位符是%s。
使用SQLAlchemy
为了更加方便的操作数据库,我们通常会用到ORM框架,在python里面最著名的就是SQLAlchemy了,
关于这个我写了一篇专门的文章,叫“SQLAlchemy入门”,可以去看看,这里我就不多说了。