Tornado
オンラインドキュメント
https://pypi.org/project/tornado/
https://www.tornadoweb.org/en/stable/
インストール
pip install tornado |
1 |
使い方
helloサンプル
以下の内容で tornado_hello.py を作成する。
import tornado.ioloop |
import tornado.web |
class RootHandler(tornado.web.RequestHandler) : |
def get(self): |
self.write("Hello, world") |
class SecondHandler(tornado.web.RequestHandler) : |
def get(self): |
self.write("Hello, eagle-eight") |
def make_app(): |
return tornado.web.Application([ |
(r"/", RootHandler), |
(r"/second/", SecondHandler), |
]) |
if __name__ == "__main__" : |
app = make_app() |
app.listen(8888) |
tornado.ioloop.IOLoop.current().start() |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
コマンドプロンプトで python tornado_hello.py を実行する。
http://localhost:8888/ 、http://localhost:8888/second/ にアクセスして動作を確認する。
form、テンプレートのサンプル
以下の内容で tornado_form.py を作成する。
import tornado.ioloop |
import tornado.web |
class InputHandler(tornado.web.RequestHandler) : |
def get(self): |
self.render("input_text_form.html") |
class ResultHandler(tornado.web.RequestHandler) : |
def post(self): |
input_text = self.get_argument("input_text") |
self.render("input_text_result.html", result=input_text) |
def make_app(): |
return tornado.web.Application([ |
(r"/input/", InputHandler), |
(r"/result/", ResultHandler), |
]) |
if __name__ == "__main__" : |
app = make_app() |
app.listen(8888) |
tornado.ioloop.IOLoop.current().start() |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
以下の内容で input_text_form.html を作成する。
<!DOCTYPE html> |
<html lang="ja"> |
<head> |
<meta charset="UTF-8"> |
<title>form_input_text_sample</title> |
<style> |
input { width: 400px; } |
input[type="submit"] { width: 100px; } |
</style> |
</head> |
<body> |
<form method="post" action="/result/"> |
<p><input type="text" name="input_text"></p> |
<p><input type="submit" value="入力内容確認"></p> |
</form> |
</body> |
</html> |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
以下の内容で input_text_result.html を作成する。
<!DOCTYPE html> |
<html lang="ja"> |
<head> |
<meta charset="UTF-8"> |
<title>form_input_text_sample:入力内容確認</title> |
</head> |
<body> |
<p name="input_text_result">{{ result }}</p> |
</body> |
</html> |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
コマンドプロンプトで python tornado_form.py を実行する。
http://localhost:8888/input/ にアクセスして動作を確認する。
アクセス制限のサンプル
以下の内容で tornado_hello_2.py を作成する。
アクセスをローカルホストに限定できる。
import tornado.ioloop |
import tornado.web |
class RootHandler(tornado.web.RequestHandler) : |
def get(self): |
self.write("Hello, world") |
def make_app(): |
return tornado.web.Application([ |
(tornado.web.HostMatches(r"(localhost|127\.0\.0\.1)"), [ |
(r"/", RootHandler), |
]), |
]) |
if __name__ == "__main__" : |
app = make_app() |
app.listen(8888) |
tornado.ioloop.IOLoop.current().start() |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
コマンドプロンプトで python tornado_hello_2.py を実行する。
http://localhost:8888/ にアクセスして動作を確認する。他のPCからアクセスすると 404: Not Found と表示される。