Python:有没有一种通用的方法来简化sql中使用的代码
这是我的密码Python:有没有一种通用的方法来简化sql中使用的代码,python,Python,这是我的密码 a1 = "a1" a2 = "a2" a3 = "a3" bb1 = [a1,a2] bb2 = [a1,a2,a3] db = BasicMysql(host="*",port=,user="*",password="*") db_values = "INSERT INTO db.bb1 values" + "('%s','%s') " %(bb1[0],bb1[1]) db.exec_insert(db_val
a1 = "a1"
a2 = "a2"
a3 = "a3"
bb1 = [a1,a2]
bb2 = [a1,a2,a3]
db = BasicMysql(host="*",port=,user="*",password="*")
db_values = "INSERT INTO db.bb1 values" + "('%s','%s') " %(bb1[0],bb1[1])
db.exec_insert(db_values) //db.exec_insert is packaged which is same as "cursor.execute(query)"
db_values = "INSERT INTO db.bb2 values" + "('%s','%s') " %(bb2[0],bb2[1],bb2[2])
db.exec_insert(db_values)
这可能是一种表达db_值的好方法。有什么想法吗
可能是这样的伪代码:
all_sql = [bb1,bb2]
for one in all_sql:
db_values = "????"
db.exec_insert(db_values)
下面是我的API,它打包了MySQLdb API
导入MySQLdb
class BasicMysql://定义一个类
def __init__(self,**kw):
self.host = kw['host']
self.port = kw['port']
self.user = kw['user']
self.password = kw['password']
try:
database_conn = MySQLdb.connect(host=self.host,port=self.port,user=self.user,passwd=self.password,local_infile
= 1,charset="utf8")
except MySQLdb.Error, e:
sys.exit(e)
self.conn = database_conn
def exec_insert(self,query):
conn = self.conn
cursor = conn.cursor()
try:
cursor.execute(query)
except Exception,e:
print Exception,":",e
conn.commit()
cursor.close()
def __exit__(self):
try:
self.conn.close
except Exception,e:
print Exception,":",e
我找到了能满足我需求的当地人:
getVar = locals()
a1 = "a1"
a2 = "a2"
a3 = "a3"
bb1 = [a1,a2]
bb2 = [a1,a2,a3]
all_sql = [bb1,bb2]
for one in all_sql:
db_values = ",".join([str([getVar[i]) for i in all_sql])
db.exec_insert(db_values)
我不清楚的表达方式和糟糕的英语可能会困扰其他人:为什么你做所有这些作业只是为了打印值?是的,这个特定的代码可以归结为一个硬编码的打印语句。您可能从实际场景中提取了太多实际问题,因此没有什么用处。或者您需要进一步澄清这方面的哪些方面需要简化。谢谢,我添加了一些评论。您应该使用DB驱动程序提供的现成语句API,而不是将值插入字符串中@对不起,我不清楚你的意思。db.exec_insert是我定义的API,它使用MySQLdb API。那么预语句API呢?无论如何,我添加了我的代码如何定义db.exec\u insert?