Python 测试Postgres DB的连接
如果软件连接到特定的Postgre DB,我想在GUI上放置一个按钮。我编写了一个小测试函数:如果它能连接到数据库,它将返回True,如果不能,它将返回False 代码是有效的,但有一个问题:如果没有连接(我只是拔出网线,没有其他变化),它只是简单的 花太多时间。 如果没有连接,你能帮我加快代码速度吗 下面是我的简单测试函数:Python 测试Postgres DB的连接,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,如果软件连接到特定的Postgre DB,我想在GUI上放置一个按钮。我编写了一个小测试函数:如果它能连接到数据库,它将返回True,如果不能,它将返回False 代码是有效的,但有一个问题:如果没有连接(我只是拔出网线,没有其他变化),它只是简单的 花太多时间。 如果没有连接,你能帮我加快代码速度吗 下面是我的简单测试函数: import psycopg2 def postgres_test(): try: conn = psycopg2.connect("dbna
import psycopg2
def postgres_test():
try:
conn = psycopg2.connect("dbname='mydb' user='myuser' host='my_ip' password='mypassword'")
conn.close()
return True
except:
return False
谢谢你的评论。是的,它与超时有关 以下是我的快速代码:
import psycopg2
def postgres_test():
try:
conn = psycopg2.connect("dbname='mydb' user='myuser' host='my_ip' password='mypassword' connect_timeout=1 ")
conn.close()
return True
except:
return False
如果超时是无法连接的一个可能原因,恐怕您做得再好不过了,您必须等到超时结束。您似乎可以将超时时间(以秒为单位)传递给调用
connect()
,如下所述。这是否符合您的要求?如果连接延迟一天,这可能会产生误报。在任何情况下,用户都可以再次按下该按钮进行双重检查。实际上,如果DB是本地的,那么答案应该很快,因此不太可能出现误报。你可以接受你自己的答案。