今回はPythonを用いてWebページの表示を行いたいと思います。
Pythonを用いてWebページの表示を行うためには、WSGIというインタフェース定義に従います。
WSGIに準拠したアプリケーションは下記のようになります。
from wsgiref import simple_server, util
_html = '''<html>
<head><title>LogonForm</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
</head>
<body>
<form action="{0}" method="POST" AcceptEncoding="utf-8">
<dl>
<dt>UserID</dt>
<dd><input type="text" name="UserID"/></dd>
<dt>Password</dt>
<dd><input type="text" name="Password"/></dd>
<input type="submit" name="logon" value="LogOn" />
</form>
</body>
</html>
'''
class SimpleWeb(object):
'''簡単なWebアプリケーション'''
def __call__(self, environ, start_response):
''' WSGI アプリケーション '''
start_response('200 OK', [('Content-Type', 'text/html; charset=utf-8')])
return self.logonPage(environ)
def logonPage(self, environ):
'''Logonページの内容を作成'''
return [bytes(_html.format(util.request_uri(environ)), 'utf-8')]
application = SimpleWeb()
if __name__ == '__main__':
server = simple_server.make_server('', 8080, application)
server.serve_forever()
上記コードのSimpleWebクラスがWSGIに準拠したアプリケーションです。
引数で渡された、呼び出し可能オブジェクト(start_response)に対して、
ステータスコードとレスポンスヘッダを返して、
本文を生成するための、バイト配列を返り値として返しています。
SimpleWebを標準モジュールwsgirefを用いて表示しているのが、
38行目と40行目の部分です。
では、実際に動かしてみます。
上記コードをsimpleweb.pyという名前で保存し、保存したディレクトリ上で、
下記コマンドを実行します。
>python simpleweb.py
これでWebアプリケーションが起動しますので、http://localhost:8080にアクセスします。
Webページが表示されていれば成功です。
FormがあるWebページにしましたが、
現段階ではボタンを押下しても同じページを表示するだけで
何もしないWebページになっています。
(次回の記事で画面遷移するように機能追加する予定です)
終了する際は、シェル上でCTRL+Cを押下すればWebアプリケーションは終了します。
これで、WSGI準拠のアプリケーションを起動することが出来ました。