我使用airspeed包来处理Velocity模板(针对现有Java/Velocity项目的脚本,因此选择了引擎)。我已经将数据建模为自定义对象的字典,现在我正试图弄清楚如何在Velocity模板中迭代它们。
Python代码:
class Walkthrough:
def __init__(self, title):
self.title = title
self.pages = {}
def add_page(self, page):
self.pages[page.number] = page
class Page:
def __init__(self, title):
self.title = title
walks = {}
walks['obj_1'] = Walkthrough('Object 1')
walks['obj_2'] = Walkthrough('Object 2')
loader = airspeed.CachingFileLoader("./velocity")
text_template = loader.load_template("text_only.vm")
map = { 'walkthroughs': walks }
text_template.merge(map, loader=loader)速度模板:
<html>
...
#foreach($walk in $walkthroughs)
<h3>$walk.title</h3>
#end
...
</html>我只得到了'obj_1‘和'obj_2',没有相关的对象。有人知道我做错了什么吗?
发布于 2013-04-03 02:27:13
我不了解velocity引擎,但我知道当您执行for k in dictionary时,Python会生成一个键列表。
由于您是在walks上使用迭代,因此如果使用list而不是dict会更有意义。
https://stackoverflow.com/questions/15771035
复制相似问题