基本数据库访问
Python对于数据库的访问提供了一套通用的API,称为DB-API。任何数据库只要提供符合这套API的驱动,就能够让Python连接到数据库并完成操作。所以各个数据库之间仅有引入的模块与数据库连接语句不同,其他操作都是共通的。
使用DB-API访问数据库,一般会使用以下几个步骤。
- 连接到输出,获得数据库连接;
- 打开游标(Cursor);
- 通过游标执行SQL语句,获得执行结果;
- 关闭游标;
- 关闭连接。
由于SQLite的驱动直接内置在Python的标准库中,所以这里以SQLite 3的操作为例来说明DB-API的使用。
import sqlite3
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
cursor.execute('select * from user where name=%s', ('Kate',))
print(cursor.rowcount)
values = cursor.fetchall()
cursor.close()
conn.close()
示例中演示了向SQL语句中传递参数,Cursor是按照参数出现位置来绑定参数的,有几个占位符就需要多少个参数。占位符可以参考使用字符串格式化中的占位符。额外的规则是,%s
表示顺序占位,顺序占位需要传入一个元组;%(name)s
表示名称占位,可以传入一个字典来归置参数。
DB-API返回的数据结构是一个列表,其中每行数据以元组类型出现。如果需要以类来表示每行数据,则需要后文介绍的ORM框架来实现。