Python连接Linux上的pg数据库

本文介绍了如何通过Python连接到Linux环境中的PostgreSQL数据库,并提供了连接类`PostGreConnect`,支持执行单条及多条SQL查询。通过在Python中设置数据库连接参数,实现数据库的连接、查询与关闭连接的操作。
摘要由CSDN通过智能技术生成

0、准备工作

Python连接Linux虚拟机发送并执行命令(可要可不要)
Linux环境PostgreSQL源码编译安装(若已安装则跳过)

1、连接database

在侧栏有database项,如果没有,点击视图-工具窗口-数据库
在这里插入图片描述

点击加号,添加数据库
在这里插入图片描述

在弹出窗口中完成配置(可能会提示需要下载drive)
在这里插入图片描述
连接成功后的显示
在这里插入图片描述

2、代码连接数据库

连接并执行操作数据库的类

import psycopg2
from psycopg2 import ProgrammingError

# 类PostGreConnect
class PostGreConnect(object):
    def __init__(self, database="postgres", user="postgres", password="postgres", host=None, port="5432"):
        self._cursor = None
        self._conn = None
        self._database = database
        self._user = user
        self._password = password
        self._host = host
        self._port = port
        self._result = None

	# 获得数据库连接
    def get_connection(self):
        self._conn = psycopg2.connect(database=self._database, user=self._user, password=self._password,
                                      host=self._host, port=self._port)

    # 关闭数据库连接
    def close_connection(self):
        # 事务提交
        self._conn.commit()
        # # 关闭数据库连接
        # self._cursor.close()
        self._conn.close()

    # 执行方法(传入的sql中只能有一条查询语句)
    def execute_method(self, sql):
        # 获取连接
        self.get_connection()

        cur = self._conn.cursor()

        # 执行查询命令
        cur.execute(sql)
        try:
            rows = cur.fetchall()
        except ProgrammingError:
            return

        return rows

	# 执行方法(传入的sql中可以有多条查询语句,按行执行)
    def multi_execute_method(self, sql):
        # 获取连接
        self.get_connection()

        cur = self._conn.cursor()

        sqls=sql.split("\n")
        for i in range(len(sqls)):
            # 执行查询命令
            cur.execute(sqls[i])
            if i == 1:
                rows = cur.fetchall()

        return rows

执行示例

from base import PostGreHelper
if __name__ == '__main__':
	# 连接数据库
    pg_helper = PostGreHelper(host="192.168.10.131")
    
    # 单条执行语句
    sql="需要查询的语句;"
    res = pg_helper.execute_method(sql)[0]
    pg_helper.close_connection()
    
    # 多条执行语句
    sqlmulti="需要查询的语句1;\n"+
    	"需要查询的语句2;"
    res = pg_helper.execute_method(sqlmulti)[0]
    pg_helper.close_connection()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值