2011-11-18 3 views
2
bottlepy

에서 튜플을 렌더링하고이 같은 일이 : 나는이 작업을 수행 한 뷰에서은 어떻게 bottlepy을 사용하고있다

..code.. 
comments = [(u'34782439', 78438845, 6, u'hello im nick'), 
(u'34754554', 7843545, 5, u'hello im john'), 
(u'332432434', 785345545, 3, u'hello im phil')] 

return comments 

을 오류는 다음과 같습니다.

Error 500: Internal Server Error 

Sorry, the requested URL http://localhost:8080/hello caused an error: 

Unsupported response type: <type 'tuple'> 

어떻게 뷰에 렌더링 할 수 있습니까?

(내 영어 죄송 메신저)

답변

7

에서 "아웃풋의 형식을 병 템플릿"섹션을 살펴 있습니다. 첫째, 응답은 튜플 목록이 될 수 없습니다. Peter가 제안한 것처럼 문자열 또는 문자열 목록 일 수도 있고,보기를 사용하려는 경우보기 변수의 사전 일 수도 있고 할 수 있습니다. 키는 변수 이름입니다 (이 이름은 comments과 같이보기에서 사용 가능함). 값은 임의의 객체입니다.

@route('/') 
@view('index') 
def index(): 
    # code 
    comments = [ 
     (u'34782439', 78438845, 6, u'hello im nick'), 
     (u'34754554', 7843545, 5, u'hello im john'), 
     (u'332432434', 785345545, 3, u'hello im phil')] 
    return { "comments": comments } 

주목하라 @view@route 장식 :

그래서, 당신의 핸들러 함수는 다음과 같이 다시 작성할 수 있습니다.

이제보기 코드에 문제가 있습니다. 튜플 압축 풀기의 쉼표가 없습니다. 내가 링크를 잃은

%for address, date, user, text in comments: 
    <h3>{{address}}</h3> 
    <h3>{{date}}</h3> 
    <h3>{{user}}</h3> 
    <h3>{{text}}</h3> 
%end 
+0

뷰와 라우트 데코레이터가 있는데, "..code .."는 그 약어입니다. "내 의견은"주석과 쉼표입니다. 도와 주셔서 대단히 감사합니다! 나는 파이썬으로 새로운 것이고 아직 뭔가 명확하지 않다. – Nicky

4

당신이 그것을 변환하고 분석해야 할 수도 있습니다, 그래서 내가 병 문자열이나 문자열 목록 중 하나를 기대하고 믿습니다.

형식 결과 방법을
return str(result) 

은 당신의 코드는 두 가지 문제를 가지고 http://bottlepy.org/docs/dev/tutorial_app.html

+0

가 감사 : 같은 따라서보기 (내 경우에는 index.html 이름)을 보일 것입니다! – Nicky

+0

문제는 없지만 유용한 답변을 잊지 말고 답변하십시오! –

+0

고마워. :) –