使用 Template 輸出畫面
本範例將會透過 RequestHandler 指定一個 html 檔案來輸出畫面。首先建立 html 檔案,名稱為 index.html,內容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Tornado Sandbox</title>
</head>
<body>
<!-- 利用 Template Syntax 將參數輸出 -->
{% for msg in messages %}
Hello, {{ msg }}<br/>
{% end %}
</body>
</html>
接著修改上一篇的 server.py,內容如下:
import tornado.ioloop
import tornado.web
class IndexHandler(tornado.web.RequestHandler):
def get(self):
# 設定下列參數輸出於畫面
messages = ["One", "Two", "Three", "Four"]
# 指定 index.html 輸出,並設定參數 messages 的值
self.render("index.html", messages=messages)
if __name__ == "__main__":
application = tornado.web.Application([
(r"/", IndexHandler)
], autoreload=True)
application.listen(8888)
tornado.ioloop.IOLoop.current().start()
整個專案的檔案架構如下:
├── Tornado
│ ├── index.html
│ └── server.py
測試 Tornado Web Application
執行 server.py,
python server.py
打開瀏覽器,輸入位址 http://localhost:8888 或者像是 192.168.1.X:8888,你就可以看到網頁顯示從 Server 端取得的參數。
最後不知道你有沒有發現,我在 application 裡面加入了一個 autoreload=True 的參數,此參數可以讓 Tornado 偵測檔案有異動時自動 reload,如此一來我們就可以隨時測試最新的程式。除此之外,你還可以加入 compiled_template_cache=False 參數,讓你的 Template 呈現最新版本。
Environment :
・ Arch Linux
・ Python 2.7
Reference :
・ Tornado