mako - 如何将 Mako 配置为在每次编辑模板后自动重新编译?
问题描述
我将 Mako 用于我的静态文件模板。每次编辑和保存后,我必须重新启动我的 Web 应用程序才能看到效果。我可以将 Mako 配置为在每次保存时自动重新编译吗?
解决方案
以下是缓存和基于文件系统的模板的文档:
- https://docs.makotemplates.org/en/latest/usage.html
- https://docs.makotemplates.org/en/latest/caching.html
您是否启用了页面缓存?
<%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,其中包含模块的源代码。下次创建具有相同参数的模板时,将自动重用此模块文件。
推荐阅读
- c# - Gridview:RowHeaderColumn HyperLinkedField
- discord - Discord 音乐机器人的音频崩溃
- reactjs - 'React' 已声明,但它的值从未在 ts 4.2 中读取
- dataset - 寻找特定的幸福数据集
- reactjs - React tsconfig-paths 找不到模块
- ruby-on-rails - 使用 React 和 Rails 后端创建评论
- java - onActivityResult 没有通过 requestCode
- jdbc - 防止 WildFly 过早解除绑定数据源
- css - 用于循环文本的 CSS 关键帧
- wordpress - 将 URL 保存到重力表单项列表