Вчера вышел релиз
А еще там теперь больше не поддерживаются Python 2.7, 3.4 и 3.5. Каждый раз радуюсь, когда очередная популярная библиотека перестаёт поддерживать Python 2.
https://www.psycopg.org/docs/news.html
#psycopg
psycopg2==2.9 — самого популярного питонячьего драйвера для СУБД PostgreSQL. Измнений не много, но они хорошие. В частности, починили старую проблему с открытием транзакций через контекст-менеджер, если соединение находится в autocommit mode. Вы знали про autocommit mode? Это чтобы не нужно было вручную завершать транзакцию через conn.commit() или conn.rollback() после каждого запроса.А еще там теперь больше не поддерживаются Python 2.7, 3.4 и 3.5. Каждый раз радуюсь, когда очередная популярная библиотека перестаёт поддерживать Python 2.
https://www.psycopg.org/docs/news.html
#psycopg
Если работаете с Python и PostgreSQL, то точно знакомы с
Циферка 2 в названии указывает на вторую версию. Сейчас автор библиотеки (Daniele Varrazzo) очень активно работает над следующей, третьей версией, написанной с нуля, несовместимой с предыдущей версией, зато с новыми полезными фичами и исправлениями давних решений в плане API и принципа работы.
Например,
* поддерживает
* полностью обмазан тайп-аннотациями 🥰;
* умеет делать подготовленные выражения (prepared statements) и курсоры на стороне сервера.
Вот тут можно посмотреть презентацию новой версии от автора: https://www.youtube.com/watch?v=XH5_Hc_BHaE
А вот здесь инструкция, как можно установить и пощупать бета-версию уже сейчас: https://twitter.com/psycopg/status/1410221901323063299?s=20
#psycopg
psycopg2. Вот уже наверное 15 лет это самый популярный драйвер для постгреса на питоне. Де-факто стандарт.Циферка 2 в названии указывает на вторую версию. Сейчас автор библиотеки (Daniele Varrazzo) очень активно работает над следующей, третьей версией, написанной с нуля, несовместимой с предыдущей версией, зато с новыми полезными фичами и исправлениями давних решений в плане API и принципа работы.
Например,
psycopg3:* поддерживает
async/await из коробки; пожалуй, учитывая позитивный опыт работы с psycopg2, я делаю ставку на этот драйвер для асинхронных приложений (aiopg и asyncpg далеко не идеальны, к сожалению);* полностью обмазан тайп-аннотациями 🥰;
* умеет делать подготовленные выражения (prepared statements) и курсоры на стороне сервера.
Вот тут можно посмотреть презентацию новой версии от автора: https://www.youtube.com/watch?v=XH5_Hc_BHaE
А вот здесь инструкция, как можно установить и пощупать бета-версию уже сейчас: https://twitter.com/psycopg/status/1410221901323063299?s=20
#psycopg
YouTube
z2d2 07 Varrazzo ENG
20150923 «Тема». Семинар
Похоже, в отличие от меня, половина людей все-таки внимательно читает документацию (хотя я так и не нашел, где бы это было упомянуто явно), и знает, что
В целом, наверное, нет особой разницы, где происходит подстановка данных в запрос. Если на стороне клиента это сделано хорошо, то оно может быть точно так же безопасно, как и server-side binding. Но всё-таки остаётся какая-то вероятность, что
#psycopg
psycopg2 делает client-side binding. Для меня это сегодня стало новостью. Я почему-то был уверен, что psycopg2 просто делегирует подстановку данных в запрос серверу БД через подготовленные выражения.В целом, наверное, нет особой разницы, где происходит подстановка данных в запрос. Если на стороне клиента это сделано хорошо, то оно может быть точно так же безопасно, как и server-side binding. Но всё-таки остаётся какая-то вероятность, что
psycopg2 вычищает/экранирует не все опасные символы из данных. Вот будет веселье-то, если вдруг такое обнаружится. А если данные попадают в уже распаршенный запрос на стороне сервера, то это уже гарантированно, что они не смогут поменять логику запроса (уже слишком поздно для этого).psycopg третьей версии будет делать server-side binding, хотя для нас (программистов) интерфейс не поменяется.#psycopg
Psycopg3 — новая долгожданная версия самого популярного и стабильного драйвера для PostgreSQL на питоне — зреет на наших глазах. Автор (Daniele Varrazzo) недавно выложил первый бета-релиз на настоящий PyPI. До этого были только релизы на тестовом PyPI.
https://www.psycopg.org/articles/2021/08/30/psycopg-30-beta1-released/
#psycopg
https://www.psycopg.org/articles/2021/08/30/psycopg-30-beta1-released/
#psycopg
Вышел стабильный релиз
🐍 + 🐘 = 🎉
https://twitter.com/psycopg/status/1447962001121157133?s=21
#psycopg
psycopg==3.0. Можно пробовать внедрять в свои проекты.pip install --upgrade pip # to upgrade pip
pip install psycopg[binary,pool] # to install package and dependencies
🐍 + 🐘 = 🎉
https://twitter.com/psycopg/status/1447962001121157133?s=21
#psycopg
Twitter
psycopg
Well, I don't know what to say, I've lost all the source code, the cat has eaten the backup... Nope! Not true! #Psycopg3 released!!! 🥳🥳🥳 Too happy for a serious message right now. Not sorry. #Python #PostgreSQL #FreeSoftware
Достаточно сильные аргументы против вставки значений напрямую в SQL-запросы.
Документация
#psycopg
Документация
psycopg снова радует. С каждой версией её становится всё интереснее читать.#psycopg