2012-05-05 14 views
5

Tengo una plantilla que muestra una gran cantidad de valores que se pasan desde un servidor, mi pregunta es cómo puedo pasar estos valores al archivo de plantilla. Mi código del controlador es la siguiente: clase AdminHandler (tornado.web.RequestHandler): def get (auto, * args, ** kwargs): #respond a un método get # self.write ("AdminHandler :: Dentro de la función GET ")Cómo pasar valores a plantillas en tornado

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) 

y mi código de la plantilla es la siguiente: {% de los artículos [ 'username']%} {% de los artículos [ 'WelcomeMessage']%} {% end%}

El problema es que no puedo acceder a estos valores en el archivo de plantilla. Me sale el siguiente error:

aumento ParseError ("desconocido operador:% r" operador%) ParseError: Operador desconocido: "artículos [ 'username']" ERROR: root: 500 GET/admin (127.0.0.1) 3.27ms

Respuesta

11

Aquí hay una demostración similar a lo que parece que está haciendo. Mire la sintaxis de la plantilla y vea los diferentes usos de los bloques {% %} y {{ }}. Este código:

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) 

produce esta salida:

Alwin Doss 
Good evening are you enjoying kids dance 

John Smith 
Good evening, JS 

Para más información sobre las plantillas Tornado echar un vistazo a this tutorial y por supuesto en el Tornado templates documentation.

Cuestiones relacionadas