edo1z blog

プログラミングなどに関するブログです

python3 - WEBサーバを立ち上げる

WEBサーバの立ち上げ

Windows10です。下記だけで、127.0.0.1:8000にアクセスできるWEBサーバが立ち上がります。

$ python -m http.server --cgi

下記のように、立ち上げたディレクトリの直下にcgi-binディレクトリをつくって、その中にpyファイルを作成すると、http://127.0.0.1:8000/cgi-bin/hoge.pyのようにアクセスすることでPythonファイルと認識して結果が表示されます。

$ cd hoge
$ python -m http.server --cgi
$ mkdir cgi-bin
$ cd cgi-bin
$ touch hoge.py
$ vim hoge.py

hoge.py

#!/usr/bin/env python

print('Content-type: text/html; charset=UTF-8\r\n')
print('Hello, World!')

GET/POSTアクセスのチェック

#!/usr/bin/env python

import os

if os.environ['REQUEST_METHOD'] == 'POST':
    print('Content-type: text/html; charset=UTF-8\r\n')
    print('Hello, World!')

パラメタの取得

#!/usr/bin/env python

import os
import cgi

if os.environ['REQUEST_METHOD'] != 'POST':
    data = cgi.FieldStorage()
    name = data.getvalue('name', 'taro')

    print('Content-type: text/html; charset=UTF-8\r\n')
    print('Hello, ' + name + '!')

JSONを返す

print('Content-Type: text/json; charset=utf-8\r\n')
print(json.dumps([1, 2, 3]))

エラーをディスプレイに表示する

import cgitb
cgitb.enable()