この記事ではPOSTメソッドによるフォーム送信の方法について説明します。
今回のディレクトリ構成
特にフォルダを切らず「tornadoWebApp」というフォルダに中に3つのファイルを格納しています。
C:\USERS\TESTUSR\ONEDRIVE\IT\PYTHON\TORNADOWEBAPP
    index.html
    result.html
    server.py
ファイルの中身については後述していきます。
server.py
server.pyの内容は以下のとおりです。
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("index.html")
    
    def post(self):
        val1 = self.get_argument('name')
        val2 = self.get_argument('age')
        self.render("result.html",name=val1,age=val2)
application = tornado.web.Application([
    (r"/", MainHandler),
    (r"/sousin", MainHandler),
])
if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
解説
def get(self):メソッドはhttp://localhost:8888/にGETリクエストしたときにindex.htmlを表示します。def post(self):メソッドはhttp://localhost:8888/sousinにPOSTリクエストしたときにresult.htmlを表示します。- このとき、POST送信されたnameとageの値を受け取り、
result.htmlに渡しています。 
- このとき、POST送信されたnameとageの値を受け取り、
 
index.html
index.htmlの中身は以下のとおりです。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>StartPage</title>
<script type="text/javascript"></script>
</head>
<body>
    <form method="post" action="/sousin">
        <input type="text" name="name" id="name">
        <input type="text" name="age" id="age">
        <input type="submit">
    </form>
</body>
</html>
解説
- nameとageの値をPOST送信します。
 
result.html
result.htmlの中身は以下のとおりです。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ResultPage</title>
<script type="text/javascript"></script>
</head>
<body>
<p>{{name}}</p>
<p>{{age}}</p>
</body>
</html>
{{}}がプレースホルダです。Pythonから渡された値を表示することが出来ます。
ここの変数名とPythonが渡す変数名は一致している必要があります。
				頭脳一式	
