2012-05-05 16 views
5

Bir sunucudan aktarılan çok sayıda değer görüntüleyen bir şablonum var, sorum şu, bu değerleri şablon dosyasına nasıl aktaracağım. Benim Handler kodu aşağıdaki gibidir: sınıf AdminHandler (tornado.web.RequestHandler): def (öz, * args, ** kwargs) olsun: Bir alma yönteminin # self.write ("AdminHandler için #respond :: aşağıdaki gibi GET fonksiyonu ") İçindeKasırgadaki şablonlara değerler nasıl aktarılır

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) 

ve benim şablon kodu: {% öğeler [ 'userName']%} {% öğeler [ 'welcomeMessage']%} {% uç%}

Sorun şu ki, şablon dosyasındaki bu değerlere erişemiyorum. ("Bilinmeyen operatörü:% r" % operatörü)

zam parseError: parseError: aşağıdaki hatayı alıyorum bilinmeyen operatörünü: "öğeleri [ 'userName']" HATA: Kök: 500 GET/yönetici (127.0.0.1) 3.27ms

cevap

11

İşte yaptığınız şeye benzeyen bir gösteri. Şablonun sözdizimine bakın ve {% %} ve {{ }} bloklarının farklı kullanımlarını görün. Bu kod: Tornado şablonları hakkında daha fazlası için

Alwin Doss 
Good evening are you enjoying kids dance 

John Smith 
Good evening, JS 

this tutorial de ve Tornado templates documentation de tabii bir göz:

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) 

bu çıktıyı üretir.

İlgili konular