我需要你的帮助。我通过 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 的连接。她工作得很好
如果有人遇到同样的问题。我找到了解决问题的办法:问题原来很简单,就是打开openvpn连接的函数阻塞了其他函数的调用。因此,我将run_openvpn和execute_sql_request函数合并为一个函数。现在python,使用threading模块,同时建立VPN连接并向数据库发送sql查询