PYPROGLIB Telegram 7180
⚡️ Django получает новый autoreloader: знакомьтесь с django-watchfiles

Django давно умеет автоматически перезапускать runserver при изменении Python-файлов. Но стандартная реализация работает неэффективно — она постоянно опрашивает файловую систему, нагружая CPU и замедляя работу.

Теперь появился более современный и быстрый способ — `django-watchfiles`, который использует нативные API отслеживания файловых изменений.

Преимущества нового подхода:
❇️ Перезапуск сервера происходит быстрее
❇️ Меньше нагрузка на процессор и экономия энергии
❇️ Более надёжная работа благодаря Rust-библиотеке watchfiles

До этого Django предлагал интеграцию с Watchman, но она требовала отдельной установки и обслуживания, а библиотека pywatchman давно не обновлялась.

Теперь у нас есть полноценная альтернатива: кроссплатформенная библиотека watchfiles.

Настроить всё очень просто

1️⃣ Установите пакет (например, через uv):
uv add django-watchfiles


2️⃣ Добавьте приложение в INSTALLED_APPS:
INSTALLED_APPS = [
...,
"django_watchfiles",
...,
]


3️⃣ Запустите проект и убедитесь, что autoreloader работает через WatchfilesReloader:
./manage.py runserver
Watching for file changes with WatchfilesReloader


📊 На проекте среднего размера (~385k строк кода + 206 пакетов) на M1 MacBook стандартный Django reloader потреблял ~10% CPU каждые 2 секунды, в то время как django-watchfiles использовал 0% CPU.


🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍203



tgoop.com/pyproglib/7180
Create:
Last Update:

⚡️ Django получает новый autoreloader: знакомьтесь с django-watchfiles

Django давно умеет автоматически перезапускать runserver при изменении Python-файлов. Но стандартная реализация работает неэффективно — она постоянно опрашивает файловую систему, нагружая CPU и замедляя работу.

Теперь появился более современный и быстрый способ — `django-watchfiles`, который использует нативные API отслеживания файловых изменений.

Преимущества нового подхода:
❇️ Перезапуск сервера происходит быстрее
❇️ Меньше нагрузка на процессор и экономия энергии
❇️ Более надёжная работа благодаря Rust-библиотеке watchfiles

До этого Django предлагал интеграцию с Watchman, но она требовала отдельной установки и обслуживания, а библиотека pywatchman давно не обновлялась.

Теперь у нас есть полноценная альтернатива: кроссплатформенная библиотека watchfiles.

Настроить всё очень просто

1️⃣ Установите пакет (например, через uv):

uv add django-watchfiles


2️⃣ Добавьте приложение в INSTALLED_APPS:
INSTALLED_APPS = [
...,
"django_watchfiles",
...,
]


3️⃣ Запустите проект и убедитесь, что autoreloader работает через WatchfilesReloader:
./manage.py runserver
Watching for file changes with WatchfilesReloader


📊 На проекте среднего размера (~385k строк кода + 206 пакетов) на M1 MacBook стандартный Django reloader потреблял ~10% CPU каждые 2 секунды, в то время как django-watchfiles использовал 0% CPU.


🐸 Библиотека питониста

#буст

BY Библиотека питониста | Python, Django, Flask


Share with your friend now:
tgoop.com/pyproglib/7180

View MORE
Open in Telegram


Telegram News

Date: |

The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020. Invite up to 200 users from your contacts to join your channel Add the logo from your device. Adjust the visible area of your image. Congratulations! Now your Telegram channel has a face Click “Save”.!
from us


Telegram Библиотека питониста | Python, Django, Flask
FROM American