2016-01-15 67 views
1

我想在不同的上下文中提供文件夾的所有內容。如何使用Python的SimpleHTTPServer在特定上下文中提供文件夾

例如:我有一個名爲「Original」的文件夾,其中的index.html位於我的Windows機器上。如果我cd到這個這個文件夾類型,

python -m SimpleHTTPServer 

現在我可以從http://127.0.0.1:8000/index.html

我如何寫一個自定義Python腳本訪問的index.html,這樣我可以服務於同一index.html文件在http://127.0.0.1:8000/context/index.html

+0

在您的http處理程序中解析部分路徑並獲取相應的文件 –

回答

1

某事像這樣,只需要請求路徑解析成多個部分,如果你需要更精細的方法(改編自測試蟒蛇服務器,根據需要使用):

# a simple custom http server 
class TestHandler(http.server.SimpleHTTPRequestHandler): 

    def do_GET(self): 
     # if the main path is requested 
     # load the template and output it 
     if self.path == "/" or self.path == "": 
      out = Contemplate.tpl('main', main_template_data) 
      self.send_response(200) 
      self.send_header("Content-type", "text/html") 
      self.send_header("Content-Length", str(len(out))) 
      self.end_headers() 
      self.wfile.write(bytes(out, 'UTF-8')) 
      return 
     # else do the default behavior for other requests 
     return http.server.SimpleHTTPRequestHandler.do_GET(self) 


# start the server 
httpd = socketserver.TCPServer((IP, PORT), TestHandler) 
print("Application Started on http://%s:%d" % (IP, PORT)) 
httpd.serve_forever() 
相關問題