Как заставить Django перезапускать сервер при изменении шаблона?
27 апреля 2018 г. 12:02
Команда django runserver
умеет определять изменения python-файлов (файлов с расширением .py
) и можно подумать, что эта команда не умеет перезапускаться при изменении шаблонов. На самом деле здесь другая тема. Во-первых, нет необходимости перезагружать сервер при изменении шаблонов. А во-вторых, мы не можем наблюдать изменения шаблонов, если они закэшированы.
По умолчанию, когда в settings.py переменная DEBUG
имеет значение False
, шаблоны рендерятся каждый раз при загрузке страницы.
Но, если у нас добавляются специфические загрузчики (loaders
), например так:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(ROOT_DIR, 'templates'), ], 'OPTIONS': { 'loaders': [ ('django.template.loaders.cached.Loader', [ 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', 'admin_tools.template_loaders.Loader', ]), ], }, }, ]
То django.template.loaders.cached.Loader
будет всегда кэшировать шаблоны. Можно назвать данный загрузчик - кэш-обёртка шаблонных загрузчиков.
Если мы вынесем загрузчики вне django.template.loaders.cached.Loader
, то шаблоны будут рендериться при каждой загрузке страницы.
Мои настройки для загрузчиков:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(ROOT_DIR, 'templates'), ], 'OPTIONS': { 'loaders': [ # uncomment if you need to often fix your templates # 'django.template.loaders.filesystem.Loader', # 'django.template.loaders.app_directories.Loader', # 'admin_tools.template_loaders.Loader', ('django.template.loaders.cached.Loader', [ 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', 'admin_tools.template_loaders.Loader', ]), ], }, }, ]
Как видите, когда надо, я закомментировываю django.template.loaders.cached.Loader и раскомментировываю вышестоящие строки.
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0