В чем разница между этими двумя API? Какой из них быстрее и надежнее с использованием Python DB API?
Upd: Я вижу два драйвера psql для Django. Первый - psycopg2. Какая вторая? pygresql?






Как бы то ни было, django использует psycopg2.
В Django есть два драйвера psql, самый популярный - psycopg2, но как насчет второго? Это драйвер pygresql?
psycopg2 частично написан на C, поэтому вы можете ожидать увеличения производительности, но, с другой стороны, его немного сложнее установить. PyGreSQL написан только на Python, его легко развернуть, но он работает медленнее.
Лицензирование может быть проблемой для вас. PyGreSQL - это лицензия MIT. Psycopg2 - это лицензия GPL.
(до тех пор, пока вы получаете доступ к psycopg2 обычными способами из Python, без внутреннего API и без прямых вызовов C, это не должно вызывать у вас никаких головных болей, и вы можете выпустить свой код под любой лицензией, которая вам нравится, но я не юрист).
psycopg2 под лицензией LGPL, а не GPL.
«PyGreSQL написан только на Python, его легко развернуть, но он работает медленнее».
PyGreSQL также содержит модуль с кодом C. Я не проводил тестов скорости, но они вряд ли будут сильно отличаться, так как настоящая работа будет происходить внутри сервера базы данных.
Вы не можете запустить "pygresql", не установив на компьютере другие библиотеки postgres (например, pg_config), поэтому это не "чистый Python".
В Psycopg2 не так много документации, но код в каталоге примеров очень полезен. Также это уровень безопасности потоков 2, то есть несколько потоков могут совместно использовать модуль и соединения, но не курсоры. питон dbi pep
Второй драйвер PostgreSQL Django называется postgresql, но на самом деле это psychopg1, поэтому ваш выбор в Django находится между версией 1 и версией 2 psychopg.