首页 > 解决方案 > 如何将 Mako 配置为在每次编辑模板后自动重新编译?

问题描述

我将 Mako 用于我的静态文件模板。每次编辑和保存后,我必须重新启动我的 Web 应用程序才能看到效果。我可以将 Mako 配置为在每次保存时自动重新编译吗?

标签: mako

解决方案


以下是缓存和基于文件系统的模板的文档:

您是否启用了页面缓存?

<%page cached="True"/>

缓存参数

在 Template 或 TemplateLookup 上,可以使用以下参数配置缓存:

cache_enabled - 将此设置为 False 将在模板呈现时禁用所有缓存功能。默认为真。例如:

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

使用基于文件的模板

模板还可以使用文件名关键字参数从文件中加载其模板源代码:

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,其中包含模块的源代码。下次创建具有相同参数的模板时,将自动重用此模块文件。


推荐阅读