Просмотр 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), которые по сути можно подменить, прошу высказаться в камментах.
Add post to:   Delicious Reddit Slashdot Digg Technorati Google
Make comment

Comments

Карабас-барабас. Потестируем сейчас. Потестируем сейчас. Между прочим openid не работает. Заваливается в ошибку. Уж посмотрите :)

Хмхм, попробую поглядеть сейчас, я уже пару недель не обновлял блог, там сделали кучу рефакторинга )

Было бы интересно поковыряться с Джанго, наверное на днях этим и займусь!

Мне понравился пост.

Да вам все посты нравятся, вы же ливiтру продвигаете )

Евгений 10.02.2008 3:16

Спасибо, именно то в чем я нуждался!

Наверно так.

Однако друзья давайте обьщатся

Предлагайте тему для общения.

Тема для общения: долбаные оптимизаторы, спамящие свои сателлиты в камментах )

Dyadya Zed 1.03.2008 4:32

Можно добавить сворачивание куска с SQL обратно в линк. Иногда хочется глянуть еще раз на страничку уже без SQL, а перегружать влом :)

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image