Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Python SimpleHTTPServer : Routing sample
#!/usr/bin/env python
import os
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
ROUTES = [
('/', '/var/www/doc-html')
]
class MyHandler(SimpleHTTPRequestHandler):
def translate_path(self, path):
# default root -> cwd
root = os.getcwd()
# look up routes and get root directory
for patt, rootDir in ROUTES:
if path.startswith(patt):
path = path[len(patt):]
root = rootDir
break
# new path
return os.path.join(root, path)
if __name__ == '__main__':
httpd = HTTPServer(('127.0.0.1', 8000), MyHandler)
httpd.serve_forever()
@AmirhosseinS3

This comment has been minimized.

Copy link

@AmirhosseinS3 AmirhosseinS3 commented Jul 31, 2020

for python3 change from BaseHTTPServer import HTTPServer and
from SimpleHTTPServer import SimpleHTTPRequestHandler to from http.server import HTTPServer and
from http.server import SimpleHTTPRequestHandler

@vaibhavkumar049

This comment has been minimized.

Copy link

@vaibhavkumar049 vaibhavkumar049 commented Aug 4, 2020

how to set different routes like localhost:8000/home for example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment