有没有人尝试在 Google App Engine 中使用 ZPT?如果是,请告诉我如何。提前致谢。
编辑:
DisplacedAussie的http://gae-zpt.appspot.com/示例https://stackoverflow.com/users/2962/displacedaussie
可以从http://github.com/displacedaussie/gae-zpt下载
我现在可以愉快地运行在:http ://blogthere.appspot.com/
有没有人尝试在 Google App Engine 中使用 ZPT?如果是,请告诉我如何。提前致谢。
DisplacedAussie的http://gae-zpt.appspot.com/示例https://stackoverflow.com/users/2962/displacedaussie
可以从http://github.com/displacedaussie/gae-zpt下载
我现在可以愉快地运行在:http ://blogthere.appspot.com/
首先,我将解释如何在正常项目中使用 ZPT。从那里我将具体向您展示如何使其与 Google App Engine 一起工作。
安装 zope.pagetemplate
# easy_install zope.pagetemplate
在您的 python 视图代码中,添加类似这样的内容
from zope.pagetemplate.pagetemplatefile import PageTemplateFile
my_pt = PageTemplateFile('mytemplate.pt')
context = {'row': ['apple', 'banana', 'carrot'], 'foo':'bar'}
print my_pt.pt_render(namespace=context)
在您的模板 ( mytemplate.pt
)
<html>
<body>
<h1>Hello World</h1>
<div tal:condition="python:foo == 'bar'">
<ul>
<li tal:repeat="item rows" tal:content="item" />
</ul>
</div>
</body>
</html>
这基本上意味着您需要执行以下操作:
谷歌应用引擎
在 GAE 中,您可以(几乎)使用任何您喜欢的代码,但您必须在您的应用程序中提供它。要使用 ZPT,您需要获取 zope.pagetemplate 包的副本以及它所依赖的任何内容。我可以告诉你,当你这样做时,# easy_install zope.pagetemplate
你最终会得到以下包:
很有可能您可以减少这些并删除您实际上不需要的代码,但我将把它作为练习留给您。
获得上述每个包的副本后,将每个包中的代码放入“zope”目录中,您可以将其包含在 GAE 应用程序中。这将允许您以标准方式导入所有内容。
假设你已经到了这一点,下一步就是像上面一样创建模板,将视图代码放入相应的 RequestHandler 中,然后在每个请求结束时编写渲染输出。
我已经创建了一个基本的 GAE 应用程序来执行此操作,您可以从 GitHub下载它。
对于您拥有的任何现有(或新)项目,只需从示例应用程序中获取“zope”目录并按照上述说明使用它。