2012-05-05 6 views
5

서버에서 전달되는 많은 값을 표시하는 템플릿이 있습니다. 내 질문은 이러한 값을 템플릿 파일에 전달하는 방법입니다. 내 처리기 코드는 다음과 같다 : 클래스 AdminHandler (tornado.web.RequestHandler) : 데프 (자동, * 인수, ** kwargs로) 얻을 : get 메소드 #의 self.write ("AdminHandler에 #respond을 :: 다음과 같이 GET 기능 ") 내부토네이도에서 템플릿에 값을 전달하는 방법

userName = "Alwin Doss" 
    welcomeMessage = "Good evening are you enjoying kids dance" 
    items = {} 
    items["userName"] = userName 
    items["welcomeMessage"] = welcomeMessage 


    self.render("web/admin.html", title="Admin Page", items=items) 

내 템플릿 코드는 다음과 같습니다 {% 항목 [ '사용자 이름'] %} {% 항목 [ 'welcomeMessage'] %} {% 엔드 %}

문제는 템플릿 파일에서이 값에 액세스 할 수 없다는 것입니다. ("알 수없는 연산자 % r에"% 연산자)

인상 ParseError : ParseError을 : 나는 다음과 같은 오류가 알 수없는 연산자 "항목 [ '아이디']" 오류 : 루트 : 500 GET/관리자 (127.0.0.1) 3.27ms

답변

11

여기에 나와있는 것과 비슷한 데모가 있습니다. 템플릿의 구문을 살펴보고 {% %}{{ }} 블록의 다양한 용도를 확인하십시오. 이 코드 : 토네이도 템플릿에 대한 자세한 내용은

Alwin Doss 
Good evening are you enjoying kids dance 

John Smith 
Good evening, JS 

this tutorial에서와 Tornado templates documentation에서 과정의 모습을 가지고 :

from tornado import template 

t = template.Template('''\ 
{% for user in users %} 
    {{ user['userName'] }} 
    {{ user['welcomeMessage'] }} 
{% end %} 
''') 

# create first user and append to a user list 
users = [] 
user = { "userName" : "Alwin Doss", 
     "welcomeMessage" : "Good evening are you enjoying kids dance"} 
users.append(user) 

# create and append second user 
user = { "userName" : "John Smith", 
     "welcomeMessage" : "Good evening, JS"} 
users.append(user) 

# render the template and output to console 
print t.generate(users = users) 

이 출력을 생성합니다.

관련 문제