主要用途就是通过python语句来控制前端html代码,此处是最简单的运用。
import os.path
import tornado.web
import tornado.httpserver
import tornado.options
import tornado.ioloop
from tornado.options import options,define
define("port",default=8000,help="on the given help",type="int")
class BookHandler(tornado.web.RequestHandler):
def get(self):
self.render(
"book.html",
title="Home Page",
header="Books that are great",
books=[
"Learning Python",
"Programming Collective Intelligence",
"Restful Web Services"
]
)
if __name__ == '__main__':
tornado.options.parse_command_line()
app = tornado.web.Application(
handlers=[(r'/', BookHandler)],
template_path=os.join(os.path.dirname(__file__), "templates")
)
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
html语句中的{{ title}},{{header}},等都是等待后端来改变的。在双大括号中的单词是占位符,当我们渲染模板时希望以实际值代替。
{% for book in books %}
<li>{{ book }}</li>
{% end %}
代表的是for循环语句,最后用end结束。请注意一个细节{% end %}才是正确的输入,而{ % end % }不是正确的输入。%与{之间不能有空格。
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>{{ header }}</h1>
<ul>
{% for book in books %}
<li>{{ book }}</li>
{% end %}
</ul>
</body>
</html>
浏览器输入网址:http://localhost:8000/?greeting=Hello%20tornado,界面如下图所示: