我学习了一些关于pythonmysqldb的基础知识,当我想为查询定义另一个函数时,我必须反复编写(connect,cursor…try..) 所以我想设计一个像jdbcTemplate(javaee,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()
打印“返回值”,插入测试数据库(data=“确定”)
^{2}$文件“D:\WorkSpaces\Aptana Studio 3 Workspace\VLuck\src\com\测试.py“,第164行,英寸 打印“返回值”,插入测试数据库(data=“确定”) TypeError:wrap()为关键字参数“data”获取了多个值
但是失败了,我该怎么做
我想出了一个解决方案,灵感来自another answer:
相关问题 更多 >
编程相关推荐