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/