在迭代中传递Python Bottle中的变量

时间:2014-04-26 21:35:59

标签: python bottle

我有几种格式mylist1,mylist2,mylist3,mylist4,....

我试图在Python Bottle中迭代它们,但我找不到正确的方法

%for i in range(1,21):
{{mylist{{i}}[0]}} or {{mylist~i~[0]}} or {{mylist}}{{i}}[0] or {{mylist+i+[0]}} or {{mylist+i}}[0]
%end

但上述工作没什么。

1 个答案:

答案 0 :(得分:1)

您可以从locals()

按名称获取变量值
{{locals()['mylist' + str(i)][0]}}

演示:

>>> from bottle import template
>>> template('{{locals()["list" + str(i)]}}', i=1, list1=[1,2,3,4])
u'[1, 2, 3, 4]'

就个人而言,我不喜欢这个解决方案。最好使用contextmylist1 ... mylist2作为键,将实际列表作为值构建mylistn dict,并将其传递给模板:

>>> template('{{context["list" + str(i)]}}', i=1, context={'list1': [1,2,3,4]})
u'[1, 2, 3, 4]'

希望有所帮助。