在Velocity/Airspeed中使用Python字典/对象
我正在使用airspeed包处理Velocity模板(用于现有Java/Velocity项目的脚本,因此选择了引擎)。我已经将数据建模为自定义对象的字典,现在我正试图找出如何在Velocity模板中迭代它们 Python代码:在Velocity/Airspeed中使用Python字典/对象,python,velocity,Python,Velocity,我正在使用airspeed包处理Velocity模板(用于现有Java/Velocity项目的脚本,因此选择了引擎)。我已经将数据建模为自定义对象的字典,现在我正试图找出如何在Velocity模板中迭代它们 Python代码: class Walkthrough: def __init__(self, title): self.title = title self.pages = {} def add_page(self, page):
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>
...
#foreach($walk-in$walkthroughs)
$walk.title
#结束
...
我只得到'obj_1'和'obj_2',没有关联的对象。有人知道我做错了什么吗?我不知道velocity引擎,但我知道Python会在字典中为k生成一个键列表
由于您正在迭代
行走
,如果您使用列表
而不是dict
则更有意义是的,字典是构建集合的必要项,但在渲染时,列表应该起作用。感谢您指出显而易见的问题!