. . . . . .
Python
August 31, 2010
. . . . . .
Python
. . . . . .
. . . . . .
vs
. . . . . .
SDK/API
. . . . . .
DBAPI
. . . . . .
DBAPI
. . . . . .
dbapi)(connect; cursor;
. . . . . .
. . . . . .
dbapimodule connect()! connection
. . . . . .
connection :cursor()! cursor
. . . . . .
cursor :execute()!
. . . . . .
cursor :fetchone()!
. . . . . .
cursor :fetchall()!
. . . . . .
connection !(
:commit() if ok:rollback() else
. . . . . .
connection :close()!
. . . . . .
. . . . . .
connection = dbapi.connect(...)
. . . . . .
host=xxx database=xxx user=xxx password=xxx
. . . . . .
cursor=conn.cursor()
. . . . . .
status = cursor.execute(...)
. . . . . .
fetch all
f o r row i n c u r s o r . f e t c h a l l ( ) :. . .
. . . . . .
or fetch each
wh i l e True :row = cu r s o r . f e t c hone ( )i f row :
. . .e l s e :
b reak. . .
. . . . . .
conn . s e t i s o l a t i o n l e v e l ( n ). . .conn . commit ( ) #or . r o l l b a c k ( )
. . . . . .
DBAPI
import psycopg2wi th conn as psycopg2 . connect ( . . . ) :
cu r = conn . c u r s o r ( )t ry :
cu r . e x e cu t e ( s e l e c t from t where key=? , ( param , ) )f o r row i n cu r . f e t c hone ( ) :
dosomthing . . .conn . commit ( )
except e :l o g g e r . l o g ( e )conn . r o l l b a c ( )
. . . . . .
ORM
. . . . . .
DBAPI
. . . . . .
. . . . . .
()
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Python Hibernate!
. . . . . .
O-R-M
. . . . . .
. . . . . .
. . . . . .
RDB () Python
. . . . . .
. . . . . .
. . . . . .
. . . . . .
SQL
. . . . . .
. . . . . .
Python
. . . . . .
SQL
. . . . . .
. . . . . .
SQLObject
. . . . . .
web2py dal
. . . . . .
Storm
. . . . . .
Django ORM
. . . . . .
web.py db
. . . . . .
Python
Web ORM
. . . . . .
. . . . . .
SQLAlchemy
. . . . . .
DBAPI
ORM ORM/DAL