Python の http.server を使って簡単にWebサーバーを立てる

AWS運用自動化サービス「Cloud Automator」

こんにちは、技術1課の加藤です。
最近、AWSの機能をデモするためにフロントエンドをちょこちょこ書いています。

そんな中で、ちょろっとWebサーバーを立ててアクセスしたいなーと思った時に便利なTipsです。

http.server モジュールを使う (Python 3系)

Python 環境を用意されている方は、 http.server モジュールを利用することでWebサーバーを立てることができます。

これでコマンドを実行したディレクトリをドキュメントルートにしたWebサーバーが立ち上がります。
デフォルトのポートが 8000 になっているため、 http://127.0.0.1:8000/http://localhost:8000 でローカルのWebサーバーにアクセスすることができます。

SimpleHTTPServer モジュールを使う (Python 2系)

Python の 2 系では、http.server ではなく SimpleHTTPServer というモジュールを使います。

こちらも同じく、コマンドを実行したディレクトリがドキュメントルートとなってWebサーバーが立ち上がります。
(※ Python 2系は 2020年1月1日をもってサポートが終了しています。使う際は自己責任でお願いします)

おまけ1. ポートを指定したい場合

コマンドの後にポート番号をつけることで、ポート指定してサーバーを立ち上げることができます。

おまけ2. Python コマンドの m オプション

Python コマンドの mオプションはモジュールをスクリプトとして実行するコマンドです。
Python 3系を使っている人の中には、仮想環境を作成する venv を利用する際に

というコマンドを打ったことがある方、いるんじゃないでしょうか。あの mオプションはこれ。venv モジュールをスクリプトとして動かしています。

これを使うと、 jq (jsonをパースするコマンドラインツール) のようなことが Python のみでできたりします。

他にも便利な使い方があるかもしれないので、探してみても面白いかもしれません。

AWS運用自動化サービス「Cloud Automator」