Функции, параметры и psycopg2
Не могу разобраться с функциями и параметрами( Подскажите пожалуйста и не кидайте тапками
def get_connect_to_database():
try:
connect = psycopg2.connect(dbname = name_of_database, user = user, password = password, host= host)
print('\n', Fore.GREEN+'================= CONNECTION OK =================')
print(Fore.RESET)
cur = connect.cursor()
time_start = time.time()
except Exception as _ex:
print(Fore.RED + '[-Error-]CONNECTION NOT OK', _ex)
def get_query_from_database():
try:
get_data_from_first_table = """
SELECT id,pas_id, date_add, status_id
FROM status_history
where status_id !=7
and date_add>= now()- interval '10 day'
order by date_add desc limit 50"""
cur.execute(get_data_from_first_table)
data_frame_from_first_table = cur.fetchall()
print(get_data_from_first_table)
except Exception as _ex:
print(Fore.RED + "[-Error-] ERROR WITH QUERY")
Как мне правильно добавить cur в функцию def get_query_from_database(). Он не активен
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Есть несколько вариантов:
- Передавать в параметры:
def get_connect_to_database():
try:
connect = psycopg2.connect(dbname = name_of_database, user = user, password = password, host= host)
print('\n', Fore.GREEN+'================= CONNECTION OK =================')
print(Fore.RESET)
cur = connect.cursor()
time_start = time.time()
return cur # <---
except Exception as _ex:
print(Fore.RED + '[-Error-]CONNECTION NOT OK', _ex)
def get_query_from_database(cur): # <---
try:
get_data_from_first_table = """
SELECT id,pas_id, date_add, status_id
FROM status_history
where status_id !=7
and date_add>= now()- interval '10 day'
order by date_add desc limit 50"""
cur.execute(get_data_from_first_table)
data_frame_from_first_table = cur.fetchall()
print(get_data_from_first_table)
except Exception as _ex:
print(Fore.RED + "[-Error-] ERROR WITH QUERY")
cur = get_connect_to_database() # <---
if cur: # <---
get_query_from_database(cur) # <---
- Сделать переменную глобальной:
cur = None # <---
def get_connect_to_database():
global cur # <---
try:
connect = psycopg2.connect(dbname = name_of_database, user = user, password = password, host= host)
print('\n', Fore.GREEN+'================= CONNECTION OK =================')
print(Fore.RESET)
cur = connect.cursor()
time_start = time.time()
except Exception as _ex:
print(Fore.RED + '[-Error-]CONNECTION NOT OK', _ex)
def get_query_from_database():
global cur # <---
try:
get_data_from_first_table = """
SELECT id,pas_id, date_add, status_id
FROM status_history
where status_id !=7
and date_add>= now()- interval '10 day'
order by date_add desc limit 50"""
cur.execute(get_data_from_first_table)
data_frame_from_first_table = cur.fetchall()
print(get_data_from_first_table)
except Exception as _ex:
print(Fore.RED + "[-Error-] ERROR WITH QUERY")