python連接數據庫

Python中定義了訪問數據庫的標準,Python Database API Specification v2.0
[url]http://www.python.org/dev/peps/pep-0249/[/url]

DBApi中定義python訪問數據庫模塊的API,是module實現者需要參考實現的;還定義了擴展API.
1. Module Interface
[list]
[*]connect(parameters...) 連接數據庫
[*]apilevel API級別,字符串'1.0'或'2.0'表示
[*]threadsafety 線程安全級別,0,1,2,3
[*]paramstyle 綁定參數形式,qmark,numeric,named,format,pyformat
[/list]

根據異常發生的不同層次,如下異常樹:
StandardError
|__Warning
|__Error
|__InterfaceError
|__DatabaseError
|__DataError
|__OperationalError
|__IntegrityError
|__InternalError
|__ProgrammingError
|__NotSupportedError

2. Connection Objects
[list]
[*].close()
[*].commit()
[*].rollback()
[*].cursor()
[/list]

3. Cursor Objects
[list]
[*].description
[*].rowcount
[*].callproc(procname[,parameters])
[*].close()
[*].execute(operation[,parameters])
[*] .executemany(operation,seq_of_parameters)
[*].fetchone()
[*].fetchmany([size=cursor.arraysize])
[*].fetchall()
[*].nextset()
[*].arraysize
[*].setinputsizes(sizes)
[*].setoutputsize(size[,column])
[/list]

4. Type Objects and Constructors
定義python與sql之間的類型轉換.
[list]
[*]Date(year,month,day)
[*]Time(hour,minute,second)
[*]Timestamp(year,month,day,hour,minute,second)
[*]DateFromTicks(ticks)
[*]TimeFromTicks(ticks)
[*]TimestampFromTicks(ticks)
[*]Binary(string)
[*]STRING
[*]BINARY
[*]NUMBER
[*]DATETIME
[*]ROWID
[/list]

[b]Python訪問Sqlite[/b]
Python標準庫sqlite3用於python訪問sqlite數據。
Sqlite: [url]http://www.sqlite.org/[/url]

import sqlite3
import os, os.path

dbfile = os.path.join(os.getcwd(), 'db1.sqlite')

con = sqlite3.connect(dbfile)
cur = con.cursor()

#create table and insert one record
try:
cur.execute('''create table stocks(date text, trans text, symbol text,
qty real, price real)''')
except sqlite3.OperationalError:
print 'Table stocks exists,will not create it!'

cur.execute("""insert into stocks
values ('2006-01-05','BUY','RHAT',100,35.14)""")

cur.execute('insert into stocks values(?,?,?,?,?)',
('2010-02-25', 'SELL', 'RHAT', 120, 40.32))

con.commit()

#select record
cur.execute('select * from stocks order by price')
print cur.rowcount

print cur.fetchone()
for r in cur.fetchall():
print " ", r
print cur.rowcount

con.close()


Oracle驅動: [url]http://cx-oracle.sourceforge.net/[/url]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章