Pythonの場合、標準で「Web Server Gateway Interface (WSGI)」というインターフェースが用意されているので、Djangoもそれに乗っかっているんだと思います。
APIリファレンス - WSGI ユーティリティとリファレンス実装
実際、Djangoのソースを開けてみると、「django.core.servers.basehttp.py」の実装は、
python
1class WSGIServer(simple_server.WSGIServer): # ←コレ
2 """BaseHTTPServer that implements the Python WSGI protocol"""
3
4 request_queue_size = 10
5
6 def __init__(self, *args, ipv6=False, allow_reuse_address=True, **kwargs):
7 if ipv6:
8 self.address_family = socket.AF_INET6
9 self.allow_reuse_address = allow_reuse_address
10 super().__init__(*args, **kwargs)
11
のように、標準ライブラリの「wsgiref.simple_server.py」のWSGIServerを拡張しています。
「WSGIServer」を見ると、
Python
1class WSGIServer(HTTPServer): # ←コレ
2
3 """BaseHTTPServer that implements the Python WSGI protocol"""
4
5 application = None
6
7 def server_bind(self):
8 """Override server_bind to store the server name."""
9 HTTPServer.server_bind(self)
10 self.setup_environ()
標準ライブラリの「http.server.py」のHTTPServerにたどり着きます。この先を追えばsocketとかも出てきます。
なので、標準の「simple_server」の使い方について勉強すればいいんじゃないでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/04 06:10