Обработка исключений в функции при подключение к базе данных
Есть такой код, в котором я подключаюсь к базе данных
try:
with psycopg2.connect() as connection:
connection.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cursor = connection.cursor()
except Exception as error:
logging.critical("Ошибка при работе с PostgreSQL", error)
finally:
if connection:
cursor.close()
connection.close()
logging.critical("Соединение с PostgreSQL закрыто")
В функции get_boards() обычный select запрос.
Я хочу импортировать эту функцию в другой файл, однако тогда не сработает код для подключения. Пытался написать декоратор, но тогда функция не видит переменную cursor. Можно, конечно, сделать её глобальной, но это моветон.
Плюс, каждый раз открывать и закрывать подключение для выполнения запроса тоже не круто, тем более что приложение долгоживущее (сайт на Flask) и можно один раз открыть и закрыть.
Посоветуйте, пожалуйста, что можно сделать в таком случае?