如何使用Python的SimpleHTTPServer在特定上下文中提供文件夹

时间:2016-01-15 23:46:51

标签: python httpserver

我想在不同的上下文中提供文件夹的所有内容。

示例:我的Windows框中有一个名为“Original”的文件夹,其中包含index.html。如果我进入此文件夹,请输入

 python -m SimpleHTTPServer

现在我可以从http://127.0.0.1:8000/index.html

访问index.html了

如何编写自定义Python脚本,以便我可以在http://127.0.0.1:8000/context/index.html提供相同的index.html文件

1 个答案:

答案 0 :(得分:1)

像这样,如果你需要更精细的方法(改编自测试python服务器,根据需要使用),只需要将请求路径解析为部分:

# 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()