| 1234567891011121314151617181920212223242526272829303132333435363738 |
- import os
- import socket
- from http.server import HTTPServer, SimpleHTTPRequestHandler
- root_dir = os.path.join(os.path.dirname((os.path.dirname(__file__))))
- web_dir = os.path.join(os.path.dirname(__file__), 'static')
- os.chdir(web_dir)
- class MultiAddressServer(HTTPServer):
- def server_bind(self):
- self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- self.socket.bind(self.server_address)
- class LoggingHTTPRequestHandler(SimpleHTTPRequestHandler):
- def __init__(self, *args, **kwargs):
- try:
- # try to prevent exception in internal getcwd()
- os.chdir(root_dir)
- os.chdir(web_dir)
- super().__init__(*args, **kwargs)
- except FileNotFoundError:
- print(f"Error: Directory '{web_dir}' not found.")
- raise
- def log_message(self, format, *args):
- print(
- f'Request received: {self.address_string()} - {self.log_date_time_string()} - {format % args}'
- )
- handler = LoggingHTTPRequestHandler
- # Start the server
- server = MultiAddressServer(('', 8000), handler)
- print('Server running on http://localhost:8000 and http://127.0.0.1:8000')
- server.serve_forever()
|