Задать вопрос
un1t
@un1t

Есть ли низкоуровневый SQL Query Builder для Python?

Нужно писать SQL запросы, которые не ложаться в рамки ORM.
Писать запрос в виде строки неудобно, т.к. его сложно модифицировать.

Нужно что-то похожее например на это
django-query-builder

Но конкретно данная штука не подходит, потому что не поддерживает операторы Postgres для работы с JSON например и другие. В общем нужно что-то более низкоуровневое, привязка к Django не обязательна.

Всякие другие похожие штуки и ORMки которые я смотрел, все поддерживают какое-то минимальное количество операторов типа !=, =, >, < и наверно и все.
  • Вопрос задан
  • 2358 просмотров
Подписаться 1 Оценить 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
@emacsway
Здесь расписано по поводу нужен ли SQL Query Builder.
Но в любом случае, детали реализации создания запроса желательно скрыть от клиента за абстрактным интерфейсом, ответственным за это. В таком случае приложению будет безразлично что Вы там используете. Лично я добавляю зависимость от нового инструмента только тогда, когда это становится действительно необходимым.

Как говорил Кент Бек: “Of course, you can do a better job if you have more tools in your toolbox than if you have fewer, but it is much more important to have a handful of tools that you know when not to use, than to know everything about everything and risk using too much solution.”

Обычно я использую с Django ORM эту библиотеку https://sqlbuilder.readthedocs.io/
Там есть парсер для поддержки JSON-операторов.

Но вы можете использовать любой удобный для Вас билдер запросов, например, от SQLAlchemy или Storm ORM, или даже LINQ-style https://github.com/pythonql/pythonql . Главное - постараться избежать осведомленности приложения о деталях реализации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы