我正在查看Mako的文档,找到了Mako的templateLookup函数:Using TemplateLookup。然而,我从来没有在金字塔的文档中看到过这个,因为我从来没有指定过模块目录。我的问题是:
创建了什么“模块”?这些文件像预编译的.pyc文件吗?
使用templateLookup与pyramid的render()或render_to_response()会使模板更快吗?
金字塔是否在默认情况下创建这些模块,但隐藏在用户看不到的地方?
从文档中可以看出,这些模块缓存在内存中。这与通过烧杯缓存有什么不同?
因为我网站上的所有内容都是动态内容(基本上除了页脚),所以我想找出缓存模板或加快渲染速度的最佳方法,这看起来像是一种简单的加快渲染速度的方法,如果确实如此的话。
最佳答案
请在下面找到一些问题的答案:
对于您拥有的每个模板,都会创建一个包含呈现模板所需代码的python模块(.py
)。这只是一个模板的优化版本,可以从Python轻松执行。执行该模块时,还会创建.pyc
文件。要检查这一点,您可以进行以下实验:
from mako.template import Template
Template(filename='template.mako', module_directory='.')
假设存在
template.mako
的情况,您将看到创建了template.mako.py
和template.mako.pyc
。查看
pyramid.mako_templating.MakoLookupRenderer.__call__
我发现用于在金字塔中呈现mako模板的方法已经使用了TemplateLookup
对象,因此不会有任何区别。我在
pyramid.mako_templating.renderer_factory
中看到有一个名为mako.module_directory
的设置。这与其他类似设置一起,可用于控制mako
库行为以创建模块文件。我看起来默认的行为不是创建那些文件(mako.module_directory
默认为None
),但是你当然可以做你需要做的任何事情。在“is see a parameter called
TemplateLookup
that by default is set tocache_impl
中,所以我猜没有什么区别。关于python - 关于Mako模块,Mako的TemplateLookup函数和Pyramid的一些问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9028504/