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

使用Python中的server()函数创建基于HTTP协议的简单Web服务器的示例

发布时间:2023-12-18 18:52:58

Python中的http.server模块提供了一个简单的Web服务器,可以用来处理HTTP请求并返回响应。下面是一个基于HTTP协议的简单Web服务器的示例代码:

from http.server import HTTPServer, BaseHTTPRequestHandler

class RequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write(b"<h1>Hello, World!</h1>")
    
    def do_POST(self):
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write(b"<h1>POST request received!</h1>")
    
def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000):
    server_address = ('', port)
    httpd = server_class(server_address, handler_class)
    print(f"Starting server on port {port}...")
    httpd.serve_forever()
    
if __name__ == '__main__':
    run()

这个示例中的RequestHandler继承自BaseHTTPRequestHandler,它用于处理HTTP请求并返回响应。在这个示例中,我们定义了两个处理方法:do_GETdo_POST。在do_GET方法中,我们发送一个包含Hello, World!的标题为h1的HTML响应。在do_POST方法中,我们发送一个标题为POST request received!的HTML响应。

run函数用于启动Web服务器。它接受三个参数:server_class默认为HTTPServerhandler_class默认为我们定义的RequestHandlerport默认为8000。在run函数中,我们创建了HTTPServer实例,并传入服务器地址和处理程序类。然后,我们调用serve_forever方法来启动服务器并开始处理请求。

要运行这个示例,将代码保存为server.py(或其他任何名称),然后在终端中运行python server.py。服务器将在本地监听端口8000上。您可以在浏览器中访问http://localhost:8000来查看响应。

如果您发送POST请求到服务器,可以使用工具(例如:curlPostman)模拟。例如,使用curl发送POST请求的命令是:curl -X POST http://localhost:8000

这只是一个简单的示例,您可以根据需要进行扩展和修改。例如,您可以根据URL路径执行不同的操作,处理表单数据,从数据库中检索数据等等。