Python 3 – PythonWebサーバーを作成する

Pythonのウェブサーバーは2つの方法でセットアップできます。 Pythonは、すぐに使用できるWebサーバーをサポートしています。 1つのライナーでWebサーバーを起動できます。

ただし、独自の機能を持つカスタムWebサーバーを作成することもできます。 この記事では、その方法を学びます。

この例のWebサーバーには、ローカルネットワークでのみアクセスできます。 これは、ローカルホストまたは別のネットワークホストのいずれかです。 あなたはそれをVPNでクロスロケーションに提供することができます。

関連コース: 完全なPythonプログラミングコースと演習

組み込みのWebサーバー

Webサーバーを起動するには、以下のコマンドを実行します。

これにより、ポート8080でWebサーバーが開きます。次に、次の場所でブラウザを開くことができます。 http://127.0.0.1:8080/

Webサーバーには、192.168 .-.-アドレスを使用してネットワーク経由でアクセスすることもできます。

これは、マシンからファイルをダウンロードするために使用できるデフォルトのサーバーです。

Webサーバー

以下のコードを実行して、カスタムWebサーバーを起動します。 カスタムWebサーバーを作成するには、HTTPプロトコルを使用する必要があります。

設計上、httpプロトコルには、サーバー上のファイルを返す「get」要求があります。 ファイルが見つかると、200が返されます。

サーバーはポート8080で起動し、デフォルトのWebブラウザー要求を受け入れます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

from http.server import BaseHTTPRequestHandler, HTTPServer
import time

hostName = "localhost"
serverPort = 8080

class MyServer(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(bytes("<html><head><title>https://pythonbasics.org</title></head>", "utf-8"))
self.wfile.write(bytes("<p>Request: %s</p>" % self.path, "utf-8"))
self.wfile.write(bytes("<body>", "utf-8"))
self.wfile.write(bytes("<p>This is an example web server.</p>", "utf-8"))
self.wfile.write(bytes("</body></html>", "utf-8"))

if __name__ == "__main__":
webServer = HTTPServer((hostName, serverPort), MyServer)
print("Server started http://%s:%s" % (hostName, serverPort))

try:
webServer.serve_forever()
except KeyboardInterrupt:
pass

webServer.server_close()
print("Server stopped.")

次のようなURLを開くと http://127.0.0.1/example メソッドdo_GET()が呼び出されます。 この方法でウェブページを手動で送信します。

Python3のWebサーバー

変数self.pathは、要求されたWebブラウザーのURLを返します。 この場合は/ exampleになります

例と演習をダウンロードする

Hope this helps!

Source link