Не думаю, что проблема в том, что вы создаете соединение вне класса, это должно быть хорошо.
Я думаю, что проблема в том, что вы создаете только один курсор и используете его в течение длительного времени, что, насколько я понимаю, не означает, что курсоры должны использоваться.
Вы можете использовать conn.execute
, не создавая курсор вручную, что должно быть хорошо для использования базы данных. Если я правильно помню, за кулисами это создает новый курсор для каждой команды SQL. Вы также можете сделать это самостоятельно в get_some_data()
: создать новый курсор, использовать его один раз, а затем закрыть его перед возвратом данных.
В долгосрочной перспективе, если вы хотите, чтобы ваш сервер был более устойчивым, вам нужно будет добавить некоторую обработку ошибок в случае сбоя операций с базой данных или потери соединения.
Последнее замечание. По сути, вы написали очень простой прокси-сервер базы данных. Возможно, для этого уже существуют различные решения, которые уже решают многие проблемы, с которыми вы, вероятно, столкнетесь. Я рекомендую хотя бы рассмотреть возможность использования существующего решения.