5

サーバーから渡される多くの値を表示するテンプレートがあります。私の質問は、これらの値をテンプレートファイルに渡す方法です。私のハンドラーコードは次のとおりです。classAdminHandler(tornado.web.RequestHandler):def get(self、* args、** kwargs):#getメソッドに応答します#self.write( "AdminHandler :: Inside GET function")

    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)

テンプレートコードは次のとおりです。{%items ['userName']%} {%items ['welcomeMessage']%} {%end%}

問題は、テンプレートファイルでこれらの値にアクセスできないことです。次のエラーが発生します。

raise ParseError( "unknown operator:%r"%operator)ParseError:unknown operator: "items ['userName']" ERROR:root:500 GET / admin(127.0.0.1)3.27ms

4

1 に答える 1

11

これはあなたがしているように見えることと似たデモンストレーションです。テンプレートの構文を調べて、{% %}{{ }}ブロックのさまざまな使用法を確認してください。このコード:

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)

この出力を生成します:

Alwin Doss 
Good evening are you enjoying kids dance 

John Smith 
Good evening, JS 

Tornadoテンプレートの詳細については、このチュートリアルと、もちろんTornadoテンプレートのドキュメントを参照してください。

于 2012-05-05T14:21:30.120 に答える