Я изучил некоторые основы Python-mysqldb, когда я хочу определить другую функцию пыток для запроса, я должен написать (connect, cursor ... try ..) несколько раз, поэтому я хочу создать шаблон, такой как jdbcTemplate (Java EE, Spring) мой код:
def DBV():
def templateFN(fn):
logging.basicConfig(level=logging.INFO)
log = logging.getLogger('DB')
conn = MySQLdb.connect(user='root',passwd='247326',db='lucky',charset="utf8",cursorclass=MySQLdb.cursors.DictCursor);
cursor = conn.cursor()
def wrap(data=None):
try:
return fn(cursor=cursor,data=data)
#conn.commit()
except Exception ,e:
conn.rollback()
log.error('%s, transaction rollback',e)
finally:
cursor.close()
conn.close()
return wrap
class DB():
@templateFN
def insertTest(self,cursor,data=None):
data = {
'field':'this is a test',
'name':'this is a name'
}
return cursor.execute('insert into test(field,name) values(%(field)s,%(name)s)',data)
return DB()
db = DBV ()
печать 'возвращаемого значения', db.insertTest (data = "ok")
Traceback (most recent call last):
Файл "D: \ WorkSpaces \ Aptana Studio 3 Workspace \ VLuck \ src \ com \ test.py", строка 164, в печати "возвращаемое значение", db.insertTest (data = "ok") TypeError: wrap() получил несколько значений для аргумента ключевого слова 'data'
, но не смог, как я должен сделать это правильно