我有一个使用CherryPy的脚本。该脚本运行良好,HTML页面正常。 在HTML页面上,我显示了一个列表的内容(仅用于学习练习)。 即便如此,但如果我尝试根据列表中的值设置背景颜色,则启动问题!
class HelloWorld(object):
@cherrypy.expose
def index(self):
for i in range(0, len(li)):
status_bkg[i]=color_status(li)
颜色状态是一个小函数,如果li [i] == 1'红色',则返回'绿色',如果为0。 然后我以这种方式将这两个列表发送到html文件:
template = loader.load('index.html')
title = "Exerc 2"
ctx = Context(title=title, li=li, status=bkg=status_bkg)
return template.generate(ctx).render('html', doctype='html')
现在html文件有这种结构:
...
<tr py:for="i in len(li)">
<td class="${status_bkg[i]}">${li[i]}</td>
<tr>
两个班级“绿色”和“红色”都可以。 所有人第一次完美展现。 但是当python脚本开始随机添加时间0或1到列表时,问题就出现了! 这两个列表具有相同的长度,但只更新了“li”,而不是status_bkg!
我哪里错了? 告诉我你是否需要更多的代码,我知道我已经简化了一点。
谢谢!
答案 0 :(得分:0)
我在你的代码中看到了另一个拼写错误(仅适用于那些可能需要帮助的人):
ctx = Context(title=title, li=li, status=bkg=status_bkg)
需要:
ctx = Context(title=title, li=li, status_bkg=status_bkg)
我认为问题出在你的for循环中,li永远不会迭代。假设status_bkg是一个列表,我会将你的for循环更改为:
for i in li:
status_bkg.append(color_status(i))
这将确保li中的每个元素都具有相应的status_bkg元素。