Я не ТАК бог, но у меня есть некоторый вклад. Мой основной опыт работы с SQL на Python связан с Django.
Решение зависит от того, что вы готовы совершить. Если вы хотите использовать библиотеки Qt и только библиотеки PyQt, то используйте QtSql. Если вы хотите просто создать приложение быстро, но добавить еще несколько зависимостей, я бы остановился на SQLAlchemy. Вы можете столкнуться с некоторыми проблемами, такими как , задавая этот вопрос , и тогда вам нужно будет добавить больше библиотек или вырвать свои волосы.
Итак, в хорошем стиле списка:
MySQLdb
- pro: чистый SQL
- con: Гадкий
- con: требует написания SQL
- con: требует управления курсором, не выполняет кэширование, параметризацию и т. Д. *
- con: невозможно переключиться на другой сервер базы данных без перезаписи всего кода вашей базы данных
ИСПРАВЛЕНИЕ: не используйте это ни для чего, что вы бы положили в производство
QtSql
- pro: использует только библиотеки Qt
- pro: вернет объекты Qt, поэтому он будет интегрирован со стандартными виджетами Qt
- pro: может использовать любой сервер базы данных, который поддерживает Qt
- con: все еще требует написания SQL
VERDICT: выберите это, если вы хотите написать меньше кода пользовательского интерфейса и больше кода базы данных
SQLAlchemy
- pro: вся логика базы данных может быть записана в коде Python (поскольку это ORM)
- pro: поддерживает множество баз данных
- con: может потребоваться дополнительная настройка, чтобы все работало хорошо с Qt
VERDICT: выберите этот вариант, если вы хотите писать меньше кода базы данных, и будет неплохо решить некоторые проблемы с API.
Кроме того, не беспокойтесь о производительности при любом выборе - все они должны быть примерно эквивалентны, и большая часть времени будет потрачена на ввод / вывод.