2012-05-05 10 views
5

Tôi có một mẫu hiển thị rất nhiều giá trị được chuyển từ máy chủ, câu hỏi của tôi là cách tôi chuyển các giá trị này vào tệp mẫu. Mã xử lý của tôi như sau: lớp AdminHandler (tornado.web.RequestHandler): def get (self, * args, ** kwargs): #respond để nhận phương thức # self.write ("AdminHandler :: bên trong chức năng GET ")Làm cách nào để chuyển các giá trị vào các mẫu trong cơn lốc xoáy

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) 

và mẫu mã của tôi là như sau: {% mục [ 'username']%} {% mục [ 'welcomeMessage']%} {% end%}

Vấn đề là tôi không thể truy cập các giá trị này trong tệp mẫu. Tôi nhận được lỗi sau:

tăng ParseError ("không rõ điều hành:% r" % nhà điều hành) ParseError: nhà điều hành không rõ: "mục [ 'username']" LỖI: root: 500 GET/admin (127.0.0.1) 3.27ms

Trả lời

11

Đây là một cuộc biểu tình tương tự như những gì bạn có vẻ đang làm. Xem cú pháp của mẫu và xem các cách sử dụng khác nhau của các khối {% %} và các khối {{ }}. Mã này:

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) 

Tạo đầu ra này:

Alwin Doss 
Good evening are you enjoying kids dance 

John Smith 
Good evening, JS 

Để biết thêm về Tornado mẫu có một cái nhìn tại this tutorial và dĩ nhiên tại Tornado templates documentation.