Python3 httpserver — 实现 Web 服务器的基础类
import http.server
import socketserver
class SimpleHTTPRequestHandlerWithDirectory(http.server.SimpleHTTPRequestHandler):
"""
自定义的请求处理类,用于重写默认的路径处理逻辑。
"""
def translate_path(self, path):
# 重写路径转换方法,使其可以指定一个目录
# 这里的getattr是为了从SimpleHTTPRequestHandlerWithDirectory类或其父类中获取指定的目录属性
self.directory = getattr(self, 'directory', '/your/custom/directory/path')
path = self.directory + path
return http.server.SimpleHTTPRequestHandler.translate_path(self, path)
if __name__ == '__main__':
# 设置服务器根目录
handler_class = SimpleHTTPRequestHandlerWithDirectory
handler_class.directory = '/your/custom/directory/path'
# 设置服务器的IP地址和端口
port = 8000
httpd = socketserver.TCPServer(("", port), handler_class)
# 启动服务器
print(f"Serving at port {port}...")
httpd.serve_forever()
这段代码定义了一个继承自http.server.SimpleHTTPRequestHandler
的类SimpleHTTPRequestHandlerWithDirectory
,并重写了translate_path
方法,以便能够指定服务器的根目录。在__main__
块中,我们设置了服务器的IP地址和端口,并指定了自定义的处理类,然后启动了HTTP服务器。这个例子展示了如何使用Python标准库中的http.server
模块来快速搭建一个具有特定根目录的HTTP服务器。
评论已关闭