Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...

Есть-ли Python/Django-библиотеки для организации SQL-запроса внутрь готового QuerySet?

В прошлой жизни, я имел дело с ColdFusion (CFML) и очень мне в нем понравилась возможность делать SQL-запрос в готовый CFQUERY (доступно, по-моему, было с версии 4.5). Что это такое?Ничего сложного: делаешь какой-нибудь тяжелый запрос в базу (с объединением таблиц, группировками и т.п.); а в полученный ответ-таблицу строишь по мере необходимости еще один (или не один) SQL-запрос. Такой подход позволял значительно снизить нагрузки на базу, т.к. для организации какой-нибудь дополнительной сортировки (в том числе и по вычисляемым полям), нахождения max и min, или мелких SQL-вычислений не нужно было дергать базу своими тяжелыми запросами... А CFQUERY вся равно в в памяти болтается (ведь приложению нужно из него записи и поля получать), что ж его не попросить что-нибудь отсортировать.

Собственно, хочу найти, нечто подобное для Django. В приложении нажно сначала найти максимум по одному полю, оптом по другому, после взять вторую после максимальной записи в третьем поле... SQL-запрос к прокешированной таблице -- милое дело для этого! Есть ли такое в Python/Django?

P.S. с помощью встроенных процедур в некоторых базах такое можно организовать (в смысле снижения нагрузки на базу), но мне важно без использования встроенных процедур обойтись.
  • Вопрос задан
  • 2660 просмотров
Решения вопроса 1
@bromzh
Drugs-driven development
Посмотри в сторону SQLAlchemy. Он состоит из 2-х частей: ядра и отдельно ОРМ. Не нужно ОРМ, можешь юзать только основную часть. А возможностей у алхимии будет побольше, чем у джанговской ОРМ.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы