Всем привет!
У меня есть говнокод, где я взаимодействую с БД, а именно PostgreSQL. Библиотека: Psycopg2.
Дело в том, что вложенность говнокода получается достаточно большим, и мне кажется, что я делаю что-то не так.
Вот код:
with psycopg2.connect('данные бд') as conn:
with conn.cursor() as cursor:
# для примера:
cursor.execute('SELECT name FROM users WHERE id = %s', [id])
result_name = [x[0] for x in cursor.fetchall()]
with psycopg2.connect('данные бд') as conn: # получается вложенность
with conn.cursor() as cursor: # без этой вложенности - получается ошибка
cursor.execute('SELECT name FROM confirm WHERE name = %s', [result_name[0]])
result_confirm = [x[0] for x in cursor.fetchall()]
if result_confirm.__len__() == 0:
...
Если вот эти вложенности не прописывать, то выходит ошибка:
connection already is closed
, поэтому приходится так засорять и так уже дерьмовый код.
Как это исправить? Или все так и должно быть?