Tornado 自带了模板系统,模板语法与 Django 差异不大。这里简单地介绍如何使用Tornado 的模板系统。
首先是编写 URL 规则与 Handler:
class NowaMagicHandler(tornado.web.RequestHandler): def get(self): content = u'Welcome to NowaMagic.' #self.write( content ) self.render("index.html") def main(): tornado.options.parse_command_line() application = tornado.web.Application([ (r"/", MainHandler), (r"/nowamagic/", NowaMagicHandler), ],**settings) http_server = tornado.httpserver.HTTPServer(application) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start()
然后是 index.html
<html> <head> <title>{{ title }}</title> </head> <body> <h1>{{ title }}</h1> <ul> {% for item in items %} <li>{{ escape(item) }}</li> {% end %} </ul> </body> </html>
文件包含也是用 {% include 'header.html' %} 这样的语法,和 Django 里是一样的。
还有就是对静态文件的处理,一般是建一个叫 static 的文件夹,然后把js,css,images分类放进去。当然在程序里也得写个 setting:
import os settings = { "static_path" : os.path.join(os.path.dirname(__file__), "static"), "template_path" : os.path.join(os.path.dirname(__file__), "templates"), "gzip" : True, "debug" : True, }
setting 里还制定了模板的路径。关于这个 setting,更多可以参考这篇文章里提到的:如何开启Tornado的调试模式。
就这样,Tornado 的模板就OK了。
===*支持中文的方法*===
self.render("index.html",title=u'登录')