Я пытаюсь написать небольшой веб-сервис в Python. Я использую Heroku и их службу postgre-DB (бесплатно).Psycopg2 Postgre Connection retries
Но я столкнулся с небольшой, но очень неприятной проблемой. Когда я пытаюсь найти что-то в базе данных, программа подключается к базе данных, но продолжает пытаться, хотя она работает в первый раз.
Часть вызова функции search_image:
def handle_send(update):
link = databasecon.search_image(update["message"]["text"], update)
connect_to_database функция:
def connect_to_db():
global __is_connected
if "DATABASE_URL" not in os.environ or __is_connected == True:
print("Environment-variable missing or already connected")
else:
urllib.parse.uses_netloc.append("postgres")
url = urllib.parse.urlparse(os.environ["DATABASE_URL"])
con = psycopg2.connect(
database=url.path[1:],
user=url.username,
password=url.password,
host=url.hostname,
port=url.port
)
if con != None:
__is_connected = True
return con
search_image функция:
def search_image(image_name, update):
db_con = connect_to_db()
cur = db_con.cursor()
query = """select link from mm_image where id=%s"""
cur.execute(query, (image_name))
result = cur.fetchone()
if result != None:
image_link = str(result[0])
disconnect_from_db(db_con)
return image_link
else:
disconnect_from_db(db_con)
return "Not found"
Это вот как бревно выглядит, как в ближайшее время, при вызове функции handle_send: http://i.stack.imgur.com/pTZcF.png
В чем проблема?
Это моя первая правильная программа, написанная на Python, так что если это явная ошибка, я извиняюсь: S
Hey lookl ike Я не описал свою проблему должным образом. Проблема заключается в том, что когда handle_send вызывается и пытается подключиться к БД, каким-то образом он начинает цикл по соединению, и он пытается подключиться к БД несколько раз, пока я не остановлю программу. Это выглядит следующим образом: http://puu.sh/j1fdq/7d0fe34e34.PNG (Как только я пишу «heytest.gif» -Message, программа вызывает функцию handle_send.) – NiV