Улучшения, показаны 50 из 540.
Если по многострочной строке разбросаны символы переноса строки `\n`, то сложно понять как будет выглядеть …
После `BASE_DIR` папка верхнего уровня у всех путей одна
mailer admin@thecoolestwebsite.com
В Django ORM есть отдельное поле для картинок, отдельное для файлов, для чисел всех мастей... …
Вам можно отправить пустой заказ, вообще без товаров. Не очень понятно как поведёт себя система …
Сейчас количество товаров в заказе может оказаться отрицательным, по крайней мере база данных такого не …
В README не хватает ссылки на демонстрационную версию сайта. Развёртывание публичной версии сайта было частью …
Импорт настроек проекта напрямую из файла `settings.py` ломает механизм конфигурации Django. Проблем здесь сразу несколько. …
Вы использовали старую форму записи функции `super()`, так её оформляли ещё во втором питоне. Сейчас …
При чтении работы возникли дополнительные вопросы, ответы на которые получить не удалось.
В описании работы программы крайне нежелательно оперировать терминами "переменная", "функция", "цикл" и так далее. Ещё …
Во время написания документации стоит избегать терминов из прогаммирования, чтобы текст читался как можно проще. …
Результат вызова `time.time()` не всегда растет со временем. Операционная система сверяет свои часы с сетевыми, …
В Django принято заканчивать адреса страниц слэшом `/`: `/some/page/`. Это правило позволяет избежать путаницы в …
Поле `JSONField` позволяет хранить в БД любую структуру данных. Иногда, это важный плюс, но чаще …
Запросы в Django ORM бывают большими и сложными. Даже десять строк кода на один запрос …
Избегайте создавать лишние "обёртки". Они хороши, когда прячут в себе сложные нетривиальные системы -- **скрывают …
В Django код запросов к БД имеет свойство распухать до неприличных размеров. И чем длиннее …
Если вы считываете настройки доступа к БД из переменных окружения, то выглядеть такой код может …
Скрипты деплоя нужны для автоматизации, а хорошая автоматизация должна работать быстро, тихо и незаметно. Если …
Дефолтные настройки нужны для того, чтобы оставлять их незаполненными и при этом ни о чём …
Остановка веб-сервера Nginx приводит к разрыву соединения с клиентом: у кого-то не подгрузится страница сайта, …
Если не побеспокоиться заранее об обработке HTTP 404, то ваши логи будут завалены бесполезными сообщениями. …
Настройка `SECRET_KEY` очень важна для django-проекта. По сути, это так называемая соль (salt), отвечающая за …
Незакомиченные изменения могут помешать накатить очередное обновление проекта. Консольный `git` откажется обновлять код, если возникнет …
Спросите любого в чём польза от того или иного приспособления, и собеседник сразу начнёт вспоминать …
Некоторые вещи проще один раз показать, чем описывать словами. Сравните два описания: > Для работы …
Это не какая-то проблема в коде, просто хотел посоветовать попробовать [декоратор @register](https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#the-register-decorator). Так регистрация моделей …
Заголовки -- это особый элемент форматирования текста. Он предназначен для выделения главной мысли в абзаце, …
Некоторые адреса геокодер будет не в состоянии распознать и функция `fetch_coordinates` вернёт `None`. Стоит заранее …
Сейчас вы считываете данные из файла строкой, а затем превращаете их в списки и словари …
Реверс-прокси -- это посредник, задача которого "передать" запрос от внешнего клиента ко внутреннему веб-сервису. При …
Концепция контейнеризации приложений делит процесс поставки кода на два этапа, и у каждого из них …
Контейнеризация с помощью Docker требует разделить поставку приложения на две фазы: сборка и запуск. За …
Multi-stage builds -- это отличный инструмент, уменьшающий размер итогового образа. А чем меньше образ, тем …
Сборщики фронтенда, такие как Webpack и Parcel, поставляются вместе с отладочным сервером на Node.js, умеющем …
Код на питоне удобнее читать, если в нём есть подсветка синтаксиса. Сравните: +++ Без подсветки …
Как для запуска приложения в local-окружении на машине разработчика, так и на серверах вам понадобятся …
Каждый новый Docker-образ усложняет поддержку приложения. Дело здесь не в экономии места на сервере, и …
Методы `QuerySet` возвращают либо итоговое число/объект, либо новый `QuerySet`. Этот новый QuerySet позволяет продолжить настройку …
В Python нет "массивов", вместо них используют "списки". То же самое со словарями: это теперь …
В Django код запросов к БД имеет свойство распухать до неприличных размеров. И чем длиннее …
В файле settings.py есть настройка `ALLOWED_HOSTS`, она нужна для безопасности вашего сайта, защищает вас от …
Bash-скрипты имеют одну неочевидную особенность: сбой первой команды не отменяет вторую и третью, и они …
Локальные настройки проекта не должны попасть в общий репозиторий. Самый простой и надёжный способ этого …
`date` -- это дата, например, `01.01.2001`. `time` -- время, например, `18:45:15`. `datetime` -- это когда …
Mixins – это худшее, что может случиться с вашим кодом. Они подрывают стабильность кода, усложняют …