Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Velocity/Airspeed中使用Python字典/对象_Python_Velocity - Fatal编程技术网

在Velocity/Airspeed中使用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):

我正在使用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>

...
#foreach($walk-in$walkthroughs)
$walk.title
#结束
...
我只得到'obj_1'和'obj_2',没有关联的对象。有人知道我做错了什么吗?

我不知道velocity引擎,但我知道Python会在字典中为k生成一个键列表


由于您正在迭代
行走
,如果您使用
列表
而不是
dict

则更有意义是的,字典是构建集合的必要项,但在渲染时,列表应该起作用。感谢您指出显而易见的问题!