HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: python, api, web-разработка, web dev, web development, django-debug-toolbar, ddt, django-extensions, ipython, shell_plus, runserver_plus, django shell, shell, runserverplus, django runserver, werkzeug, django-configurations, dev-инстанс, django</p>
1 <p>Теги: python, api, web-разработка, web dev, web development, django-debug-toolbar, ddt, django-extensions, ipython, shell_plus, runserver_plus, django shell, shell, runserverplus, django runserver, werkzeug, django-configurations, dev-инстанс, django</p>
2 <p>Итак, вы начинаете делать сайт на Django! Какие модули можно смело подключать с самого начала разработки?</p>
2 <p>Итак, вы начинаете делать сайт на Django! Какие модули можно смело подключать с самого начала разработки?</p>
3 <h2>django-debug-toolbar</h2>
3 <h2>django-debug-toolbar</h2>
4 <p>Если приложение не<strong>API</strong>, то<strong>DDT</strong>можно подключать сразу: помогает отлаживать новые страницы с меньшими временными затратами. А одна из самых классных штук - отладка запросов к БД: плагин показывает, какой код какие запросы генерирует, с переменными, временем выполнением и подробностями запроса. Помогает быстро отследить, например, проблему<strong>n+1</strong>запроса и после исправления убедиться, что её больше нет.</p>
4 <p>Если приложение не<strong>API</strong>, то<strong>DDT</strong>можно подключать сразу: помогает отлаживать новые страницы с меньшими временными затратами. А одна из самых классных штук - отладка запросов к БД: плагин показывает, какой код какие запросы генерирует, с переменными, временем выполнением и подробностями запроса. Помогает быстро отследить, например, проблему<strong>n+1</strong>запроса и после исправления убедиться, что её больше нет.</p>
5 <h2>django-extensions + ipython</h2>
5 <h2>django-extensions + ipython</h2>
6 <p>В<strong>django-extensions</strong>много полезного, но удобнее всего<strong>shell_plus</strong>и<strong>runserver_plus</strong>. Первый -<strong>django shell</strong>с дополнительными возможностями, который при старте автоматически импортирует все модели. А<strong>ipython</strong>обеспечивает автодополнение, сохранение истории при перезапуска команды и более удобный способ ввода многострочного кода. Если простым<strong>shell</strong>можно воспользоваться раз в месяц, то<strong>shell_plus</strong>с<strong>ipython</strong>делает этот процесс сильно более удобным и экономит много времени при частом использовании.</p>
6 <p>В<strong>django-extensions</strong>много полезного, но удобнее всего<strong>shell_plus</strong>и<strong>runserver_plus</strong>. Первый -<strong>django shell</strong>с дополнительными возможностями, который при старте автоматически импортирует все модели. А<strong>ipython</strong>обеспечивает автодополнение, сохранение истории при перезапуска команды и более удобный способ ввода многострочного кода. Если простым<strong>shell</strong>можно воспользоваться раз в месяц, то<strong>shell_plus</strong>с<strong>ipython</strong>делает этот процесс сильно более удобным и экономит много времени при частом использовании.</p>
7 <p><strong>runserver_plus</strong>запускает<strong>django runserver</strong>c<strong>Werkzeug</strong>, показывая его версию страницы в случае 500 ошибки. Удобство в том, что прямо со страницы есть доступ до python-сессии со всеми переменными на момент ошибки: вместо кучи дополнительного логирования чтобы понять, в чём ошибка, достаточно прямо в браузере выполнить нужный код, увидеть, что идёт не так, и поправить.</p>
7 <p><strong>runserver_plus</strong>запускает<strong>django runserver</strong>c<strong>Werkzeug</strong>, показывая его версию страницы в случае 500 ошибки. Удобство в том, что прямо со страницы есть доступ до python-сессии со всеми переменными на момент ошибки: вместо кучи дополнительного логирования чтобы понять, в чём ошибка, достаточно прямо в браузере выполнить нужный код, увидеть, что идёт не так, и поправить.</p>
8 <h2>django-configurations</h2>
8 <h2>django-configurations</h2>
9 <p>Эта библиотека позволяет сделать настройки проекта, основанными на классах, что сильно упрощает конфигурацию проекта для нескольких окружений: тут очень пригождается наследование. Как только у вашего проекта появляется<strong>dev-инстанс</strong>, у него появляется две конфигурации: для инстанса и для локальной разработки. Для решения этой проблемы есть много способов, но<strong>django-configurations</strong>- самый удобный почти в любом случае.</p>
9 <p>Эта библиотека позволяет сделать настройки проекта, основанными на классах, что сильно упрощает конфигурацию проекта для нескольких окружений: тут очень пригождается наследование. Как только у вашего проекта появляется<strong>dev-инстанс</strong>, у него появляется две конфигурации: для инстанса и для локальной разработки. Для решения этой проблемы есть много способов, но<strong>django-configurations</strong>- самый удобный почти в любом случае.</p>
10 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
10 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
11  
11