python psycopg2 通过数据库连接但没有任何反应

问题描述 投票:0回答:1

我需要你的帮助。我通过 Pycharm 连接到 PostgreSQL 时遇到问题。首先我连接到VPN:

    def run_openvpn(config_path):
        try:
            subprocess.run(['openvpn', '--config', config_path])
            print('OpenVPN connection established.')
        except FileNotFoundError:
            print("OpenVPN executable not found. Please ensure it is installed and in your system's PATH.")

        except subprocess.CalledProcessError as e:
            return f"OpenVPN connection failed with error: {e}"

后面是发送请求的函数:

    def execute_sql_request(host, port, database, user, password, sql_query):
        try:
            # Connect to the PostgreSQL database
            connection = psycopg2.connect(
                host=host,
                port=port,
                database=database,
                user=user,
                password=password
            )
        
            # Create a cursor to execute SQL queries
            cursor = connection.cursor()

            formatted_query = cursor.mogrify(sql_query)
            print("Formatted SQL Query:", formatted_query.decode('utf-8'))

            # Execute the SQL query
            cursor.execute(sql_query)

            # Fetch all the results
            results = cursor.fetchall()

            # Close the cursor and the database connection
            connection.commit()
            cursor.close()
            connection.close()

            return results  # Return the result of the SQL request as a list of tuples

        except psycopg2.Error as e:
            error_msg = str(e)
            return error_msg  # Return the error message if there was a problem

我运行代码并收到有关 VPN 初始化成功的消息,但没有其他任何反应。我没有收到任何错误消息,也没有从数据库中获取值。请帮助我理解为什么execute_sql_request函数没有执行

我尝试在execute_sql_request函数中添加一些信息的显示,以便了解该函数是正在执行还是正在下降。但我没有收到任何东西,所以我可以断定连函数调用都没有

此代码运行我的函数

def test_execute_sql_query(browser)
    sql.run_openvpn(config_path=**)
    sql.execute_sql_request(host=**, port=**, database=**, user=**, password=**, sql_query=**)
    sql.stop_openvpn()

'sql' 是存储与 SQL 一起使用的函数的页面 'stop_openvpn' 函数用于关闭与 VPN 的连接。她工作得很好

python postgresql psycopg2 ui-automation
1个回答
0
投票

如果有人遇到同样的问题。我找到了解决问题的办法:问题原来很简单,就是打开openvpn连接的函数阻塞了其他函数的调用。因此,我将run_openvpn和execute_sql_request函数合并为一个函数。现在python,使用threading模块,同时建立VPN连接并向数据库发送sql查询

© www.soinside.com 2019 - 2024. All rights reserved.