2014-11-12 3 views
-1

CherryPy를 사용하는 스크립트가 있습니다. 스크립트가 잘 작동하고 HTML 페이지가 정상입니다. HTML 페이지에서 하나의 목록의 콘텐츠를 보여 드리겠습니다 (학습을위한 연습 일뿐입니다). 심지어이 작동하지만 목록의 값을 기반으로 배경색을 넣으려고하면 문제가 시작됩니다!목록 업데이트시 Cherrypy 문제

  class HelloWorld(object): 
       @cherrypy.expose 
       def index(self): 

       for i in range(0, len(li)): 
        status_bkg[i]=color_status(li) 

색상 상태 반환 작은 함수 인 '그린'만약 리튬 [I] == 1 '적색'이어서 0 경우 I 이렇게하여 HTML 파일이 두리스트를 보내

 ... 
    <tr py:for="i in len(li)"> 
       <td class="${status_bkg[i]}">${li[i]}</td> 
    <tr>   

두 개의 클래스가 "녹색"과 "빨간색"확인됩니다

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 파일 구조의이 종류가 있습니다. 처음으로 모두 완벽하게 표시됩니다. 그러나 파이썬 스크립트가 시간에 무작위로 0 또는 1을 추가하기 시작하면 문제가 발생합니다! 두리스트의 길이는 같지만 status_bkg가 아니라 "li"만 업데이트됩니다!

내가 틀렸어? 코드가 더 필요하면 알려주세요. 조금 더 간단하게 이해합니다.

감사합니다. (도우 할 수 있습니다 사람들을 위해)

+0

'status_bkg [i] = color_status (li)'는 잘못된 것 같습니다. 각 요소에 대해'color_status'가 전체 목록과 함께 호출됩니다. – jwalker

+1

사이트에서 실제로 답변을 얻으려면 질문을 작성하고 이해할 수 있도록 노력해야합니다. 사용한 템플릿 엔진의 이름은 텍스트 나 태그에서 언급하지 않았으며 적극적으로 사용되는 템플릿 엔진은 약 6 개입니다. 귀하의 태그''목록 ''이 틀렸기 때문에 그것을 가리켜 볼 수 있습니다. 파이썬 스 니펫 들여 쓰기가 깨졌습니다. 따라서 지금 당신을 도우려는 사람이 실제로 대답하기보다는 질문의 암호 해독에 더 많은 시간을 할애해야 할 수도 있습니다. – saaj

답변

0
난 당신의 코드에서 다른 오타를 참조

:

ctx = Context(title=title, li=li, status=bkg=status_bkg) 

필요가되게합니다 :

ctx = Context(title=title, li=li, status_bkg=status_bkg) 

내가 문제가 당신의 루프에 생각, li은 결코 반복되지 않습니다. 리튬의 각 요소는 해당 status_bkg 요소를 가지고 있는지 확인하십시오 것

for i in li: 
    status_bkg.append(color_status(i)) 

: 목록 status_bkg을한다 가정 할 때, 나는에 루프 당신을 변경합니다.

+0

오, 죄송합니다. 복사하여 붙여 넣기에만 오류가 있습니다! 나는 그것을 바로 잡을 것이다. 감사합니다 – user2174050

+0

답변 주셔서 감사합니다. 맞다. 그러나 내가 고쳐야 할 또 다른 이상한 오류가있다. 이상하게도 그것은 정상 for 루프의 실패를 야기합니다. – user2174050