天飞 2016-08-16 814浏览量
URL:
http://www.linuxyw.com/517.html
一般操作:
import psycopg2 连接数据库 conn = psycopg2.connect(database=db_name,user=db_user,password=db_pass,host=db_ip,port=db_port) 建立游标 cursor = conn.cursor() 执行SQL语句 cursor.execute(sql) 提交 conn.commit() 关闭 conn.close()
import psycopg2 import logging db_name = "****" db_user = "****" db_pass = "****" db_ip = "****" error_log = "****" #定义日志输出格式 logging.basicConfig(level=logging.ERROR, format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt = '%Y-%m-%d %H:%M:%S', filename = error_log, filemode = 'a') def writeDb(sql,data): """ 连接mysql数据库(写),并进行写的操作,如果连接失败,会把错误写入日志中,并返回false,如果sql执行失败,也会把错误写入日志中,并返回false,如果所有执行正常,则返回true """ try: conn = psycopg2.connect(database=db_name,user=db_user,password=db_pass,host=db_ip,port=5432) cursor = conn.cursor() except Exception,e: print e logging.error('数据库连接失败:%s' % e) return False try: cursor.execute(sql,data) conn.commit() #提交事务 except Exception,e: conn.rollback() #如果出错,则事务回滚 logging.error('数据写入失败:%s' % e) return False finally: cursor.close() conn.close() return True def readDb(sql): """ 连接mysql数据库(从),并进行数据查询,如果连接失败,会把错误写入日志中,并返回false,如果sql执行失败,也会把错误写入日志中,并返回false,如果所有执行正常,则返回查询到的数据,这个数据是经过转换的,转成字典格式,方便模板调用,其中字典的key是数据表里的字段名 """ try: conn = psycopg2.connect(database=db_name,user=db_user,password=db_pass,host=db_ip,port=5432) cursor = conn.cursor() except Exception,e: print e logging.error('数据库连接失败:%s' % e) return False try: cursor.execute(sql) data = [dict((cursor.description[i][0], value) for i, value in enumerate(row)) for row in cursor.fetchall()] #转换数据,字典格式 except Exception,e: logging.error('数据执行失败:%s' % e) return False finally: cursor.close() conn.close() return data
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
分享数据库前沿,解构实战干货,推动数据库技术变革