博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个可能有用的封闭PGSQL操作的PYTHON函数
阅读量:7091 次
发布时间:2019-06-28

本文共 1925 字,大约阅读时间需要 6 分钟。

 

 

 

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 psycopg2import loggingdb_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 Truedef 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

 

转载地址:http://nbsql.baihongyu.com/

你可能感兴趣的文章
WebRTC APM音频处理流程概述
查看>>
养成好的JAVA编码习惯
查看>>
js操作select和option
查看>>
tomcat
查看>>
Golang操作数据库
查看>>
093实战 Nginx日志切割,以及脚本上传nginx的切割日志
查看>>
MyBatis传入参数为集合 list 数组 map写法
查看>>
Python-Mac 安装 PyQt4
查看>>
css-列表或标题的多级计数
查看>>
Asp.Net中使用OpenRowSet操作Excel表,导入Sql Server(实例)
查看>>
Windows搭建测试RabbitMq遇到的问题
查看>>
webservice 测试窗体只能用于来自本地计算机的请求
查看>>
linux安装apache
查看>>
OpenWrt的开机启动服务(init scripts)
查看>>
SVN目录权限配置
查看>>
utc时间转换成标准时间
查看>>
==和equals的简单比较
查看>>
IntelliJ IDEA 的Project structure说明
查看>>
将博客搬至CSDN
查看>>
Java两种核心机制
查看>>