def open_and_close_db(func):
def wrapper(*a, **k):
conn = connect_db()
result = func(conn=conn, *a, **k)
conn.commit()
conn.close()
return result
return wrapper
使用的时候:
@open_and_close_db
def query_for_dict(sql, conn):
cur = conn.cursor()
try:
cur.execute(sql)
conn.commit()
entries = [dict(zip([i[0] for i in cur.description], row)) for row in cur.fetchall()]
print entries
except Exception,e:
print e
return entries