August 2018
Intermediate to advanced
366 pages
10h 14m
English
The http.server module provides most of what is needed to implement an HTTP server in charge of serving content of a directory:
import os.path import socketserver from http.server import SimpleHTTPRequestHandler, HTTPServer def serve_directory(path, port=8000): class ConfiguredHandler(HTTPDirectoryRequestHandler): SERVED_DIRECTORY = path httpd = ThreadingHTTPServer(("", port), ConfiguredHandler) print("serving on port", port) try: httpd.serve_forever() except KeyboardInterrupt: httpd.server_close() class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer): pass class HTTPDirectoryRequestHandler(SimpleHTTPRequestHandler): SERVED_DIRECTORY = '.' def translate_path(self, path): path = super().translate_path(path) relpath ...