tgoop.com/pyproglib/7180
Last Update:
⚡️ Django получает новый autoreloader: знакомьтесь с django-watchfiles
Django давно умеет автоматически перезапускать runserver
при изменении Python-файлов. Но стандартная реализация работает неэффективно — она постоянно опрашивает файловую систему, нагружая CPU и замедляя работу.
Теперь появился более современный и быстрый способ — `django-watchfiles`, который использует нативные API отслеживания файловых изменений.
Преимущества нового подхода:watchfiles
До этого Django предлагал интеграцию с Watchman, но она требовала отдельной установки и обслуживания, а библиотека pywatchman
давно не обновлялась.
Теперь у нас есть полноценная альтернатива: кроссплатформенная библиотека watchfiles
.
Настроить всё очень просто
uv add django-watchfiles
INSTALLED_APPS
:INSTALLED_APPS = [
...,
"django_watchfiles",
...,
]
WatchfilesReloader
:./manage.py runserver
Watching for file changes with WatchfilesReloader
📊 На проекте среднего размера (~385k строк кода + 206 пакетов) на M1 MacBook стандартный Django reloader потреблял ~10% CPU каждые 2 секунды, в то время как
django-watchfiles
использовал 0% CPU.#буст