Python中使用HTTPServer()模块实现一个基本的文件服务器
发布时间:2024-01-11 14:41:19
在Python中,可以使用内置的http.server模块中的HTTPServer类来实现一个基本的文件服务器。
首先,首先导入必要的模块:
from http.server import HTTPServer, SimpleHTTPRequestHandler
然后,定义一个类来继承自SimpleHTTPRequestHandler,并重写do_GET方法,以实现自定义的文件处理逻辑:
class FileServer(SimpleHTTPRequestHandler):
def do_GET(self):
# 打印请求的URL
print("Request URL:", self.path)
# 调用父类的do_GET方法来返回文件内容
super().do_GET()
接下来,创建一个HTTPServer对象,并将上述自定义的FileServer类作为处理请求的处理器:
server_addr = ('', 8000) # 设置服务器地址和端口号
file_server = HTTPServer(server_addr, FileServer)
最后,通过调用HTTPServer对象的serve_forever方法来启动服务器,使其一直运行:
print('File server running at http://localhost:8000')
file_server.serve_forever()
在上述代码中,服务器监听在本地的8000端口,URL为http://localhost:8000。当有客户端请求时,会调用FileServer类的do_GET方法来处理请求,并将文件内容返回给客户端。
运行上述代码后,即可通过浏览器访问http://localhost:8000来查看服务器的文件列表。同时,服务器会打印出接收到的请求的URL。
例如,当访问http://localhost:8000/index.html时,服务器会返回index.html文件的内容给客户端,并在控制台上打印出Request URL: /index.html。
上述代码实现了一个基本的文件服务器,可以根据需要进行扩展,例如添加身份验证、文件上传等功能。
