PythonでWebサーバーを起動する
PythonでWebサーバーを起動する方法は簡単です。
python -m http.server --cgi
これだけです。
カレントディレクトリがルートディレクトリになります。Pythonで作成したプログラムを実行したいときは「cgi-bin」フォルダの中にスクリプトを作成します。
flaskを使ってみる
最初の方法だと、ちょっとシンプル過ぎて使いにくいです。
そこで、flaskというpythonのwebフレームワークを使います。
フレームワークというと苦手かもしれませんが、flaskは安心です。
そんなに覚えることがありません。
簡単なWebAPIサービスくらいなら1ファイルで作れてしまいます。
from flask import Flask import json app = Flask(__name__) @app.route('/') def hello(): name = "Hello World" return name @app.route('/good') def good(): name = "Good" return name @app.route('/json') def json_ex(): return json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}]) @app.route('/getUser/<string:userId>', methods=['GET']) def get_user(userId): return json.dumps(userId) ## ここからはじまる if __name__ == "__main__": app.run(debug=True)
起動するときはpythonで普通に実行するだけです。
python 作成したファイル
で何も考えなくても起動します。
* Restarting with stat * Debugger is active! * Debugger PIN: 287-879-094 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
というログが表示されるので
http://127.0.0.1:5000/ にアクセスすると表示されます。
上の例だと
http://127.0.0.1:5000/json
にアクセスすれば json_ex() 関数が実行されます。
とてもシンプルであることがわかると思います。
もちろんポート番号の変更もできます。
スクリプトの最後の部分を
app.run(host='0.0.0.0', port=80)
にするだけです。