免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 932 | 回复: 0
打印 上一主题 下一主题

Mysql connector封装 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-20 12:56 |只看该作者 |倒序浏览
对Mysql connector代码做了封装,可以直接插入dict对象

[Python]代码
  1. #!/usr/bin/env python
  2. #-*- coding:utf-8-*-

  3. from mysql import connector

  4. def connect():
  5.     config={
  6.         'host':'localhost',#默认127.0.0.1  
  7.         'user':'root',  
  8.         'password':'1111111',  
  9.         'port':3306 ,#默认即为3306  
  10.         'database':'test',  
  11.         'charset':'utf8'#默认即为utf8  
  12.     }
  13.     try:  
  14.         return connector.connect(**config)
  15.     except connector.Error as e:
  16.         print('connect fail! {}'.format(e))

  17. def execSql(cur, sql, data, isCommit = False):
  18.     cur.executemany(sql, data) if isinstance(data, list) else cur.execute(sql, data)
  19.     if isCommit:
  20.         conn.commit()

  21. def insert(conn, tableName, datas):
  22.     sql = 'insert into `{0}` ({1}) values ({2})'
  23.     keys = []
  24.     placeHolders = []
  25.      
  26.     data = datas
  27.     if isinstance(datas, list):
  28.         data = datas[0]
  29.      
  30.     for key in data:
  31.         keys.append(key)
  32.         placeHolders.append('%('+key+')s')
  33.     sql = sql.format(tableName, ','.join(keys), ','.join(placeHolders))
  34.      
  35.     id = -1
  36.     try:
  37.         cur = conn.cursor()
  38.         execSql(cur, sql, datas)
  39.         if not isinstance(datas, list):
  40.             id = cur.lastrowid #返回主键
  41.         conn.commit()
  42.     except connector.Error as e:
  43.         raise e
  44.     finally:
  45.         cur.close()
  46.     return id

  47. def query(conn, sql, datas):
  48.     try:
  49.         cur = conn.cursor()
  50.         cur.execute(sql, datas)
  51.     except connector.Error as e:
  52.         raise e
  53.     return cur

  54. if __name__ == '__main__':
  55.     testDict = {
  56.         'aa': 1,
  57.         'bb': 'aaa',
  58.         'cc': 'bbb',
  59.         'dd': 'ccc'
  60.     }
  61.     conn = connect()
  62.     print insert(conn, 'test_table', brandDict)
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP