欢迎访问宙启技术站
智能推送

Pyhton中的SimpleHTTPRequestHandler()实现一个基本的Web服务器

发布时间:2023-12-17 12:46:12

SimpleHTTPRequestHandler是Python内置的HTTP请求处理程序类,它可以用于快速实现一个基本的Web服务器。下面是一个简单的使用例子:

from http.server import SimpleHTTPRequestHandler
from socketserver import TCPServer

# 定义服务器地址和端口
HOST = 'localhost'
PORT = 8000

# 创建HTTP请求处理程序类的子类,用于定制具体的处理逻辑
class MyHandler(SimpleHTTPRequestHandler):
    def do_GET(self):
        # 处理GET请求
        if self.path == '/':
            # 设置响应的Content-Type头,并返回响应内容
            self.send_response(200)
            self.send_header('Content-Type', 'text/html')
            self.end_headers()
            self.wfile.write(b'Hello, World!')
        else:
            # 返回404错误
            self.send_error(404)

# 创建TCP服务器对象,并指定请求处理程序
server = TCPServer((HOST, PORT), MyHandler)

# 启动服务器
print(f'Starting server on {HOST}:{PORT}...')
server.serve_forever()

在上面的例子中,我们继承SimpleHTTPRequestHandler类创建了一个名为MyHandler的子类,然后通过重写do_GET方法来定制处理GET请求的逻辑。在这个例子中,如果请求的路径是根路径"/",则返回一个包含"Hello, World!"字符串的HTML响应;否则返回404错误。当然,你可以根据自己的需求修改处理逻辑。

接下来,我们创建了一个TCPServer对象,指定服务器地址和端口以及请求处理程序。最后,调用server.serve_forever()方法启动服务器,它将一直运行直到服务器被停止。

要使用这个Web服务器,只需要在终端中运行这段代码。然后,在浏览器中访问http://localhost:8000/,你将看到返回的"Hello, World!"字符串。

这只是一个使用SimpleHTTPRequestHandler的基本示例,你可以根据需要添加更多的处理逻辑,比如处理POST请求、处理静态文件等。有关更多信息,可以查阅Python官方文档中关于http.server模块的内容。