PythonSimpleHTTPServerの使用方法

How Use Python Simplehttpserver



Webサーバーの主なタスクは、クライアントからのHTTPリクエストを処理することです。特定のIPアドレスとポート番号からのHTTPリクエストを待機し、リクエストを処理して、クライアントの応答を送り返します。 Pythonは SimpleHTTPServer サーバーからファイルのコンテンツを即座に簡単に提供するWebサーバーを作成するモジュール。ファイル共有にも使用できます。このためには、共有可能なファイルの場所でこのモジュールを有効にする必要があります。このモジュールには、Pythonインタープリターが付属しています。インストールする必要はありません。このモジュールはとマージされているので http.server python3のモジュールなので、実行する必要があります http.server python3でWebサーバーを実行します。このチュートリアルでは、Webサーバーを使用してHTTPリクエストを処理し、ファイルを共有する方法を示しました。

ターミナルからWebサーバーを実行します

次のコマンドを実行して、ターミナルからWebサーバーを実行します。コマンドでポート番号が定義されていない場合、Webサーバーはデフォルトで8000ポートで起動します。







$ python3 -mhttp。サーバ



Webサーバーが正しく起動されると、次の出力が表示されます。 CTRL + Cを押してサーバーを停止します。




次のコマンドを実行して、8080ポートでWebサーバーを起動します。





$ python3 -mhttp。サーバ 8080

Webサーバーが8080ポートで起動されている場合、次の出力が表示されます。



Pythonスクリプトを使用してWebサーバーを実行する

次のコマンドを実行して、という名前のフォルダーを作成します ウェブ フォルダーに移動します。このチュートリアルのすべてのスクリプトファイルとHTMLファイルは、このフォルダー内に作成されます。

$ mkdir web

$CDウェブ

名前の付いたHTMLファイルを作成します testHTML.html の中に ウェブ 次のスクリプトを含むフォルダ。このファイルは、後でWebサーバーから提供されます。

testHTML.html

< html >>

< >>

< 題名 >>

PythonWebサーバーをテストする

</ 題名 >>

</ >>

< >>

< 中心 >>

< img src='logo.jpeg' すべての=「画像が見つかりません」/>>

< h2 スタイル='color:green'>>おめでとうございます! Webサーバーは正常に実行されています。</ h2 >>

< NS >>訪問< href=「www.linuxhint.com」>>LinuxHint.com</ >>Pythonのその他のチュートリアルについては</ NS >>

</ 中心 >>

</ >>

</ html >>

例-1:特定のポート番号でWebサーバーを実行する

次のスクリプトを使用してPythonファイルを作成し、8008ポートでWebサーバーを実行します。 http.server モジュールはWebサーバーを実行するためにインポートされており、 SocketServer モジュールは、8080ポートからのHTTPリクエストを処理するためにインポートされました。名前の付いたオブジェクト ハンドラ HTTPリクエストを処理するために作成されました。 永遠に() 関数は、Webサーバーを実行するために呼び出されます。スクリプトに終了条件は追加されていません。そのため、ユーザーがサーバーを停止しようとすると、スクリプトはエラーを生成します。

#サーバーモジュールをインポートする

輸入http。サーバ

#SocketServerモジュールをインポートする

輸入ソケットサーバー


#ポート番号を設定する

= 8080

#HTTPリクエストを処理するためのオブジェクトを作成します

ハンドラ=http。サーバSimpleHTTPRequestHandler


#サーバーを永久に実行してHTTPリクエストを処理する

ソケットサーバー。TCPServer(((('')。ハンドラ)。 なのでhttpd:

印刷((「Webサーバーはhttp:// localhost:%sで実行されています」%港)。

httpd。serve_forever(()。

出力

上記のスクリプトを実行すると、次の出力が表示されます。


ブラウザから以下のURLを実行すると、スクリプトの場所のファイルとフォルダの一覧が表示されます。

http:// localhost:8080

ユーザーが端末からCTRL + Cを押すか、PyCharmエディターから停止ボタンを押すと、次のエラーメッセージが表示されます。この問題は、このチュートリアルの次の例で解決されました。

例-2:コマンドラインで定義されたポート番号でWebサーバーを実行します

コマンドライン引数でポート番号が指定されている場合は、次のスクリプトを使用してPythonファイルを作成し、特定のポートでWebサーバーを実行します。それ以外の場合は、5000がデフォルトのポートとして使用されます。 sys モジュールは、コマンドライン引数値を読み取るためにスクリプトにインポートされています。 試してみてください ユーザーがサーバーを停止しようとしたときのエラーを処理するために、スクリプトにブロックが追加されました。サーバーの実行後にKeyboardInterrupt例外が発生した場合は、 選ぶ() 関数が呼び出され、Webサーバーが停止します。

#サーバーモジュールをインポートする

輸入http。サーバ

#SocketServerモジュールをインポートする

輸入ソケットサーバー

#sysモジュールをインポートする

輸入 sys


試す

#ポート番号を設定する

もしも sysargv[1]

= int((sysargv[1])。

そうしないと

= 5000

#IPアドレスを設定する

サーバーアドレス= (('127.0.0.1')。

#HTTPリクエストを処理するためのオブジェクトを作成します

ハンドラ=http。サーバSimpleHTTPRequestHandler


#HTTPリクエストを処理するためにWebサーバーを永久に実行します

ソケットサーバー。TCPServer(((('')。ハンドラ)。 なのでhttpd:

印刷((「Webサーバーはhttp:// localhost:%sで実行されています」%港)。

httpd。serve_forever(()。

#サーバーを停止しました

それ外 KeyboardInterrupt

httpd。server_close(()。

印刷((「サーバーは停止しています。」)。

出力

コマンドライン引数値なしで上記のスクリプトを実行すると、次の出力が表示されます。

前の手順で作成したHTMLファイルをWebサーバーから実行すると、次の出力が表示されます。

PyCharmエディターの[実行]メニューから構成ダイアログボックスを開き、コマンドライン引数の値を設定します。パラメータフィールドはコマンドライン引数を設定するために使用され、3000は引数値としてここに設定されます。

引数値を設定した後、再度スクリプトを実行すると、次の出力が表示されます。

例-3:HTMLファイルを使用してWebサーバーを実行する

次のスクリプトを使用してPythonファイルを作成し、ベースURLのHTMLファイルを定義してWebサーバーを実行します。ホスト名とポート番号は、スクリプトの冒頭で定義されています。 PythonServer クラスは、Webサーバーの実行開始時にブラウザーにHTMLファイルを表示するようにスクリプトで定義されています。

#サーバーモジュールをインポートする

輸入http。サーバ


#ホスト名を設定します

ホスト= 'localhost'

#ポート番号を設定する

= 4000


#Webサーバーのインデックスページを表示するクラスを定義します

クラスPythonServer((http。サーバSimpleHTTPRequestHandler)。

defdo_GET((自己)。

もしも 自己 == '/'

自己 = 'testHTML.html'

戻るhttp。サーバSimpleHTTPRequestHandlerdo_GET((自己)。


#クラスのオブジェクトを宣言する

webServer=http。サーバHTTPServer((((ホスト)。PythonServer)。


#WebサーバーのURLを出力します

印刷((「サーバーがhttp://%s:%sを開始しました」((ホスト)。)。


試す

#Webサーバーを実行します

webServer。serve_forever(()。

それ外 KeyboardInterrupt

#Webサーバーを停止します

webServer。server_close(()。

印刷((「サーバーは停止しています。」)。

出力

上記のスクリプトを実行すると、次の出力が表示されます。

ブラウザのウェブサーバーのベースURLが実行されると、次のページがブラウザに表示されます。

結論

を使用してWebサーバーを実装するさまざまな方法 http。サーバ このチュートリアルでは、PythonユーザーがPythonで簡単なWebサーバーを作成するのに役立つモジュールを示しています。