sqlite 是一个嵌入到应用程序内的关系数据库,可以将数据保存到内存或文件
中,数据直接在进程内部通过本地API访问,没有网络通信,适合开发本地应用。
sqlite库不支持ORM,要想使用ORM,推荐的库是SQLALchemy
import sqlite3
def test_sqlite3():
# 连接到内存数据库,这里可以指定一个本地文件名来创建数据库连接
conn = sqlite3.connect(':memory:')
# 获得游标
c = conn.cursor()
# 创建数据库
c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
# 插入一行记录
c.execute("INSERT INTO stocks VALUES "
"('2006-01-05','BUY','RHAT',100,35.14)")
# 查询记录
# 注意,文档中警告过不要用下面这种方式拼装查询语句
# symbol = 'RHAT'
# c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
# 而应该用?方式,让sql引擎来做这个工作,用元组来传递参数
c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
print c.fetchone()
# 游标数据读取后,其内部会自动移动到下一行,因此要重新获取
c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
print c.fetchall()
c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
for x in c:
print x
# execute返回的就是游标本身
q = c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
assert q == c
# 提交
conn.commit()
# 关闭数据库连接
conn.close()
原文地址:http://www.isware.cn/python-modules/01-data-persistence-and-exchange/sqlite/