Я пытаюсь переключить шаблон Jinja2 в приложении django без перезапуска приложения.
Кто-нибудь делал это?В основном мне нужно заставить jinja2 перезагружать шаблоны после применения изменения выбора темы оформления.
Я пытался воссоздать объект кэша на объекте среды шаблона без эффекта.
myskin_utils.py:
from jinja2.environment import create_cache
ENV_OBJECT.cache = create_cache(50)
Я также пытался перезагрузить модуль, содержащий мой ENV_OBJECT, с помощью
reload(myskin) #also no effect on the output
Еще одна вещь, которую я хотел бы изменить на лету, это язык, ноЯ думаю, что это отдельный вопрос.
Спасибо за любой совет.
edit: У меня нет кеша, настроенного с помощью jinja2, но я вижу ускорениеот использования Jinja после переключения с шаблонов Django, я подозреваю, что байт-код шаблона находится в скомпилированном коде моих функций просмотра, но я не изучал детали jinja.Подклассы Jinja Environment
) импортируются в глобальное пространство имен модуля представления и вызывают ENV.get_template()
внутри функций представления (Django + Coffin + Jinja2).
Обнаружено, что если я вызову reload()
Python, встроенный в мой модуль среды в , функцию представления, которую шаблон переключает, но я не хотел бы вставлять этот код в каждую функцию.