🌐

Pythonの標準ライブラリを使ってWebサーバーを起動する

2022/07/31に公開

PythonでWebサーバーを構築する

どうやって?

  • Pythonに付属している標準ライブラリにシンプルなWebサーバーとして機能するモジュールがあるので、これを使って構築する

  • ゴールはHTMLファイルをレスポンスとして返す
    以下は手順(Pythonの環境構築は済んでいるものとする)

  1. index.htmlファイルを用意する
  2. PythonコマンドでWebサーバーの起動
  3. index.htmlファイルを編集し、反映されるかを確認する

前提知識

モジュール > パッケージ > ライブラリ

  • モジュール

    • .py などのファイル全てがモジュール
  • パッケージ

    • 1つ以上のモジュールが集まったもの
  • ライブラリ

    • パッケージをまとめてインストールしやすくしたもの

index.htmlファイルの用意

開いた時に最低限見れれば良いものとする

index.html!
<!DOCTYPE html>
<html>
<head>
  <title>サーバーテスト</title>
  <meta charset="UTF-8">
</head>
<body>
  <h1>サーバーの起動中</h1>
  <p>Hello, Python!</p>
</body>
</html>

用意したらそのディレクトリに移動する。

PythonコマンドでWebサーバーを起動させる

以下のコマンドをターミナル上で叩く。

terminal
$ python -m http.server 8000
  • オプションで指定した意味 (-m)
    以下 python -h でヘルプを参照した結果から

-m mod : run library module as a script (terminates option list)
参考: コマンドラインで使えるPython標準モジュール
ちょっと難しいですが、モジュールを呼び出すという意味で大丈夫だと思います。

今回はhttp.serverというモジュールを使用します。

ターミナル上にServing HTTP on :: port 8000 (http://[::]:8000/) ...と出て、
Webブラウザ(自分はGoogle Chromeで試しました)でhttp://127.0.0.1:8000/を打ち、作成したHTMLファイルが閲覧出来れば無事にWebサーバーが起動しています。

HTMLファイルを編集し、変更が反映されるかを確認する

HTMLファイルの変更は好きに変更してください。
自分は以下を<p>Hello, Python!</p>の下に追記します。

index.html
<p>ライブラリを使って初めてのWebサーバーを構築しました</p>
<p>変更が反映されるか確認します</p>

再読み込みして反映されていればOKです。

Discussion