psycopg2连接pg数据库并对数据库操作封装

psycopg2库是python用来操作postgreSQL 数据库的第三方库。

本文利用psycopg2模块对pg数据库做出一些封装。

1.参数池

connect_parameters = {
    "database":"xxx",
    "uname":"postgres",
    "upwd":"xxx",
    "host":"127.0.0.1",
    "port":"5432"
}

2.连接数据库 connect()方法

#连接数据库
def reConnect(self):
    if not self._conn:
        self._conn = psycopg2.connect(database=self._database, user=self._uname,password=self._upwd, host=self._host,port=self._port)
    else:
        pass

        ##关闭连接

def __del__(self):
    if self._conn:
        self._conn.close()
        self._conn = None

3.获取游标

def newCursor(self):
    """
    新建游标
    :return:
    """
    cur = self._conn.cursor()
    if cur:
        logging.debug("Get New Cursor sucessed.")
        return cur
    else:
        logging.error("#Error# Get New Cursor Failed.")
        return None

def deleteCursor(self, cur):
    """
    删除游标
    :param cur:
    :return:
    """
    if cur:
        cur.close()

4.数据库的查询

def Query(self, sql):
    """
    数据查询
    :param sql:
    :return:
    """
    rt = []
    try:
        # 获取cursors
        cur = self.newCursor()
        if not cur:
            return rt

        # 查询到列表
        cur.execute(sql)
        rt = cur.fetchall()  # 获取结果集中的每一行 fetchone返回一行
        print(rt)
    except Exception as e:
        logging.error("error:{}****sql:{}".format(e, sql))
    finally:
        # 释放cursor
        self.deleteCursor(cur)
    return rt

5.数据库插入记录

def insert(self, sql):
    """
    插入记录
    :param sql: sql语句
    :param params: 插入值
    :return:
    """
    try:
        cur = self.newCursor()
        cur.execute(sql)
        self._conn.commit()#提交数据
    except Exception as e:
        logging.error("error:{}****sql:{}".format(e, sql))
    finally:
        self.deleteCursor(cur)

暂时写到这里,哈哈。

刚开始写博客,也不懂该咋写直接放代码

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值