Просмотр SQL запросов в Django: часть2
Сегодня наконец-то собрался с силами и оформил тэг для просмотра sql запросов в виде отдельного приложения. Для просмотра EXPLAIN запросов требуется настройка url dispatcher и отдельный view, так что получилось полноценное приложение.
Оно называется dja.debug ) Т.е пустой package dja, в котором package debug с приложением.
Такая структура нужна т.к. я планирую в будущем заопенсорсить другие свои наработки, которые попадут в отдельные пакеты внутри dja.
Итак, пара слов о том, что делает dja.debug. После подключения его в INSTALLED_APPS, становится доступным temaplate tag orm_debug, для работы с которым надо сделать {% load dja_debug %}. Тэг orm_debug отображает список SQL запросов сделанных во время выполнения запроса. По умолчанию список свёрнут. Естественно, тэг работает только при включенном settings.DEBUG, иначе он просто возвращает пустую строку. Я уже публиковал код этого тэга ранее на блоге.
Особая фича, которая требует рассмотрения - это возможность делать EXPLAIN выбранных запросов. Для этого вы должны подключить jQuery фреймворк к своему проекту. Просмотр EXPLAIN доступен только с ip адресов, указанных в settings.INTERNAL_IPS, просмотр sql запросов доступен с любых адресов.
Трак проект dja.debug доступен по адресу: http://dja.pydev.ru
Репозитарий: http://hg.dja.pydev.ru
Инструкция по установке приложения:
- скачайте из репозитория каталог dja! Именно dja, а не debug
- сохраните этот jda куда-нибудь в sys.path
- пропишите в settings.INSTALLED_APPS строку dja.debug
- пропишите в urls.py (”, include(‘dja.debug.urls’)),
Обратите внимание, что в dja.debug есть ещё одна фича, которую вы, возможно, захотите отключить или использовать. dja.debug.urls подключают стандартный вид django.views.static.serve для раздачи статических файлов. В общем, смотрите код, там всё понятно, надеюсь )
Если у кого будут мысли, насколько это ахтунг позволять делать EXLAIN запросов (пусть только и для INTERNAL_IPS), которые по сути можно подменить, прошу высказаться в камментах.
Оно называется dja.debug ) Т.е пустой package dja, в котором package debug с приложением.
Такая структура нужна т.к. я планирую в будущем заопенсорсить другие свои наработки, которые попадут в отдельные пакеты внутри dja.
Итак, пара слов о том, что делает dja.debug. После подключения его в INSTALLED_APPS, становится доступным temaplate tag orm_debug, для работы с которым надо сделать {% load dja_debug %}. Тэг orm_debug отображает список SQL запросов сделанных во время выполнения запроса. По умолчанию список свёрнут. Естественно, тэг работает только при включенном settings.DEBUG, иначе он просто возвращает пустую строку. Я уже публиковал код этого тэга ранее на блоге.
Особая фича, которая требует рассмотрения - это возможность делать EXPLAIN выбранных запросов. Для этого вы должны подключить jQuery фреймворк к своему проекту. Просмотр EXPLAIN доступен только с ip адресов, указанных в settings.INTERNAL_IPS, просмотр sql запросов доступен с любых адресов.
Трак проект dja.debug доступен по адресу: http://dja.pydev.ru
Репозитарий: http://hg.dja.pydev.ru
Инструкция по установке приложения:
- скачайте из репозитория каталог dja! Именно dja, а не debug
- сохраните этот jda куда-нибудь в sys.path
- пропишите в settings.INSTALLED_APPS строку dja.debug
- пропишите в urls.py (”, include(‘dja.debug.urls’)),
Обратите внимание, что в dja.debug есть ещё одна фича, которую вы, возможно, захотите отключить или использовать. dja.debug.urls подключают стандартный вид django.views.static.serve для раздачи статических файлов. В общем, смотрите код, там всё понятно, надеюсь )
Если у кого будут мысли, насколько это ахтунг позволять делать EXLAIN запросов (пусть только и для INTERNAL_IPS), которые по сути можно подменить, прошу высказаться в камментах.




















Comments
Карабас-барабас. Потестируем сейчас. Потестируем сейчас. Между прочим openid не работает. Заваливается в ошибку. Уж посмотрите :)
Хмхм, попробую поглядеть сейчас, я уже пару недель не обновлял блог, там сделали кучу рефакторинга )
Было бы интересно поковыряться с Джанго, наверное на днях этим и займусь!
Мне понравился пост.
Да вам все посты нравятся, вы же ливiтру продвигаете )
Спасибо, именно то в чем я нуждался!
Наверно так.
Однако друзья давайте обьщатся
Предлагайте тему для общения.
Тема для общения: долбаные оптимизаторы, спамящие свои сателлиты в камментах )
Можно добавить сворачивание куска с SQL обратно в линк. Иногда хочется глянуть еще раз на страничку уже без SQL, а перегружать влом :)