Как я могу настроить Mako для автоматической перекомпиляции после каждого редактирования шаблона? - PullRequest
0 голосов
/ 22 апреля 2020

Я использую Мако для моих шаблонов файлов stati c. После каждого редактирования и сохранения мне нужно перезапустить свое веб-приложение, чтобы увидеть результаты. Можно ли настроить Mako на автоматическую перекомпиляцию при каждом сохранении?

1 Ответ

0 голосов
/ 01 мая 2020

Вот документация для шаблонов кэширования и файловых систем:

У вас включено кэширование страниц?

<%page cached="True"/>

Аргументы кэша

В Template или TemplateLookup кэширование можно настроить с помощью следующих аргументов:

cache_enabled - при значении False все функции кэширования отключаются при визуализации шаблона. По умолчанию установлено значение True. Например:

lookup = TemplateLookup(
                directories='/path/to/templates',
                cache_enabled = False
                )

Использование файловых шаблонов

Шаблон также может загрузить исходный код своего шаблона из файла, используя аргумент ключевого слова filename:

from mako.template import Template

mytemplate = Template(filename='/docs/mytmpl.txt')
print(mytemplate.render())

Для повышения производительности шаблон, который загружается из файла, также может кэшировать исходный код в свой сгенерированный модуль в файловой системе в виде обычного файла Python модуля (то есть .py. файл). Для этого просто добавьте аргумент module_directory в шаблон:

from mako.template import Template

mytemplate = Template(filename='/docs/mytmpl.txt', module_directory='/tmp/mako_modules')
print(mytemplate.render())

Когда приведенный выше код отображается, файл /tmp/mako_modules/docs/mytmpl.txt.py имеет вид создан с исходным кодом для модуля. При следующем создании шаблона с такими же аргументами этот файл модуля будет автоматически использован повторно.

...