達到這一目的通常是通過使用UI modules的方式。
這就是我將如何構建你的應用程序。
首先main.py
:
import tornado.ioloop
import tornado.web
import views
class MainHandler(tornado.web.RequestHandler):
def get(self):
HL = {
'headlines': ['head1', 'head2', 'head3'],
}
self.render('tmpl.html', HL=HL)
if __name__ == "__main__":
application = tornado.web.Application([
(r"/", MainHandler),
], ui_modules=views)
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
然後你的模板tmpl.html
:
<html>
{% for headline in HL['headlines'] %}
{% module Headline(headline) %}
{% end %}
</ul>
</body>
</html>
最後,views.py
,在這裏你可以定義你所有的UI模塊:
from tornado.web import UIModule
class Headline(UIModule):
def render(self, name):
return '<h1>%s</h1>' % name
UI modules
就像「可重複使用的模板「,t帽子接受參數。
謝謝! - 剛剛看到你的迴應。將嘗試一下。 – idiotype
我不確定,我是否犯了錯誤或以上的事情與Tornado 3.1.1失敗。他們提到ui_modules應該是一個字典,在這種情況下它可以工作。 – avi