Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

Подбираем полезные модули Django

WebDev_Deep_LAST_11.07_1_site.png

Итак, вы начинаете делать сайт на Django! Какие модули можно смело подключать с самого начала разработки?

django-debug-toolbar

Если приложение не API, то DDT можно подключать сразу: помогает отлаживать новые страницы с меньшими временными затратами. А одна из самых классных штук – отладка запросов к БД: плагин показывает, какой код какие запросы генерирует, с переменными, временем выполнением и подробностями запроса. Помогает быстро отследить, например, проблему n+1 запроса и после исправления убедиться, что её больше нет.

django-extensions + ipython

В django-extensions много полезного, но удобнее всего shell_plus и runserver_plus. Первый – django shell с дополнительными возможностями, который при старте автоматически импортирует все модели. А ipython обеспечивает автодополнение, сохранение истории при перезапуска команды и более удобный способ ввода многострочного кода. Если простым shell можно воспользоваться раз в месяц, то shell_plus с ipython делает этот процесс сильно более удобным и экономит много времени при частом использовании.

runserver_plus запускает django runserver c Werkzeug, показывая его версию страницы в случае 500 ошибки. Удобство в том, что прямо со страницы есть доступ до python-сессии со всеми переменными на момент ошибки: вместо кучи дополнительного логирования чтобы понять, в чём ошибка, достаточно прямо в браузере выполнить нужный код, увидеть, что идёт не так, и поправить.

django-configurations

Эта библиотека позволяет сделать настройки проекта, основанными на классах, что сильно упрощает конфигурацию проекта для нескольких окружений: тут очень пригождается наследование. Как только у вашего проекта появляется dev-инстанс, у него появляется две конфигурации: для инстанса и для локальной разработки. Для решения этой проблемы есть много способов, но django-configurations – самый удобный почти в любом случае.

Есть вопрос? Напишите в комментариях!

Автор
0 комментариев
Для комментирования необходимо авторизоваться