Как у вас выглядит процесс разработки проекта на джанге? Как вы ведете отладку, а как профилирование? Вставляете print и изучаете консоль дев сервера? Вглядываетесь в лог SQL запросов, в котором зачастую трудно понять "а почему же так тормозит?!"? А может быть вы используете что-то другое?
Я вот до недавнего времени примерно все перечисленное и делал. Но в один прекрасный момент мне это надоело, и я решил все-таки потрогать зверька под именем django-debug-toolbar от Роба Хадсона. Отметив его галочкой "интересно" в свое время, у меня так и не доходили руки его поизучать предметно. Наконец-то я созрел.
Что это такое? Да просто панелька, которая висит вверху страницы, и где на вкладках можно найти подробнейшую информацию о том, как отработал весь стек джанги при генерации ответа на запрос. Посмотреть можно всё: начиная от параметров запроса и заканчивая статистикой использования кеша.

Приложение совсем небольшое и легко устанавливается. Достаточно положить в PYTHON_PATH приложение debug_toolbar, добавить его в INSTALLED_APPS, прописать нужные мидлвари, так же не забыв указать себя в INTERNAL_IPS - вот в принципе и всё. Есть дополнительные настройки отображения панелей и деталей поведения тулбара, но они опциональны.
В основной комплект входят панели:
- показ версии джанги
- общее время генерации страницы
- значения из
settings.py - HTTP заголовки
- Параметры запроса
- Информация об использованных шаблонах при подготовки ответа. Будьте осторожны, эта штука долго рендериться сама по себе и не хило может замедлить отдачу страницы:-)
- Лог SQL запросов с временем их выполнения
- Информация об использовании кеша
- Вывод стандартного питонячего модуля
logging
Поотключав мне не очень интересные панели, я стал активно пользоваться тулбаром. Конечно, в процессе подмечал какие-то моменты, которые хотелось бы сделать по другому или добавить какой-то функциональности в уже имеющиеся панели.
Соверешнноя случайно, я набрел на форк тулбара от Девида Крамера. И к своему удивлению обнаружил, что все фичи которые мне хотелось добавить и все баги которые хотелось исправить - им благополучно добавлены и исправлены. Чудесно. И ещё как приятный бонус - небольшой редизайн. Так что рекомендую именно его форк. Он значительно удобнее и уж точно функциональнее "из коробки" чем прототип.
Хочу отметить так же, что на мой взгляд, одной из самой важной особенностью тулбара является - легкость добавления собственных панелей. Буквально сразу я придумал, какую панельку хотелось бы добавить и реализовал ее достаточно быстро. Понравилось. Все достаточно просто и в тоже время функционально. Но об этом поподробней в другой раз.
Пока что оставляю тех, кто еще не щупал тулбар с ним наедине - пробуйте. А от тех, кто им уже пользовался, хотелось бы услышать ваши впечатления.
Комментарии 14
Так... А плохо-то что? Не бывает, чтобы плохо ничего не было.
Вот то, что оно logging хавает -- это мне почему-то особенно приятно...
Оставлен 05 Январь 2009 в 03:55 ¶Ну даже не знаю...
setup.pyнет в пакете:-)А вообще главная проблема - почти все панели это хаки. Джанга в большинстве подсистем не предоставляет какого-то отладочного интерфейса, поэтому если хочется что-то где-то трассировать, то приходится манки-патчить:-( Но это скорей деталь реализации, а не недостаток.
Оставлен 05 Январь 2009 в 13:18 ¶Я бы сказал, что это то, как в Питоне интерфейсы рождаются. Сначала люди протаптывают дорожки (манки-патчинг), а потом уже их асфальтируют (создание официальных интерфейсов).
Оставлен 05 Январь 2009 в 14:17 ¶Спасибо за полезную информацию.
Оставлен 06 Январь 2009 в 00:48 ¶Интересно, спасибо!
Оставлен 06 Январь 2009 в 02:43 ¶Спасибо, про форк я ничего не слышал...
Оставлен 06 Январь 2009 в 18:03 ¶Ого,да это в разы облегчает всё дело!Спасибо,буду пользовать!
Оставлен 06 Январь 2009 в 23:24 ¶Саша, ты забыл про возможность пошаговой отладки с расстановкой брейкпоинтов в любой вменяемой IDE (например, в Eclipse + PyDev и Eric4 такая возможность есть).
Оставлен 19 Апрель 2009 в 12:34 ¶Только вот как я замечаю, использование IDE в питон мире как-то не очень широко распространено.
В основном паттерны ловли багов в веб проектах слегка другие, начиная от логирования и заканчивая отладкой, но с использование консольных инструментов.
Оставлен 19 Апрель 2009 в 13:43 ¶Я думаю, это потому, что никто не пишет в блогах о том, как можно упростить себе жизнь, используя IDE. Все пишут про логгеры, тулбары и другие нетрадиционые в мире разработчиков инструменты, потому что они интуитивнее проще в освоении, что ли.
Оставлен 19 Апрель 2009 в 15:02 ¶Да, я не хочу сказать, что логгеры и тулбары не нужны. Порой это единственный способ диагностировать проблему на продакшене, когда у тебя нет туда физического доступа.
Оставлен 19 Апрель 2009 в 15:03 ¶Да вот в том то и дело, что тот же тулбар гораздо больше может пользы принести чем дебагер какой-то среды разработки.
Дебагер не покажет выполненные запросы к базе, не расскажет какие шаблоны были использованы или выведет статистику хитов кеша. Он лишь может помочь в исправлении каких-то алгоритмических проблем кода. Тулбар же гораздо более осведомлен о конечном приложении за которым он сделит и может оказаться значительно полезней и показать более детальную картину работы приложения.
Причем практика внедрения неких framework/platform-specific отладочных инструментов широко распространена даже в тех технологиях, где IDE имею более широкое и даже основополагающее значение.
Оставлен 19 Апрель 2009 в 15:55 ¶Спасибо. Что-то он с jQuery.easing у меня не сдружился :(
Оставлен 21 Апрель 2009 в 21:34 ¶Спасибо позновательно. А можно вопрос к знатокам, кто какое IDE пользуется под Python+Django?
Оставлен 08 Август 2009 в 13:57 ¶Оставьте комментарий