我正在查看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.pytemplate.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 calledTemplateLookupthat by default is set tocache_impl中,所以我猜没有什么区别。

关于python - 关于Mako模块,Mako的TemplateLookup函数和Pyramid的一些问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9028504/

10-12 23:20