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

使用wsgiref.simple_serverWSGIRequestHandler()处理PythonWeb请求的示例

发布时间:2023-12-17 13:01:19

下面是使用wsgiref.simple_server和WSGIRequestHandler处理Python Web请求的示例代码:

from wsgiref.simple_server import make_server
from wsgiref.util import request_uri

def hello_world_app(environ, start_response):
    # 获取请求的URI
    uri = request_uri(environ)
    # 设置响应头
    status = '200 OK'
    headers = [('Content-type', 'text/plain; charset=utf-8')]
    start_response(status, headers)
    
    # 构造响应体
    response = f"Hello, World!
URI: {uri}
"
    response = response.encode('utf-8')

    return [response]

# 创建一个简单的HTTP服务器
httpd = make_server('', 8000, hello_world_app)
print("Serving HTTP on port 8000...")

# 服务器开始运行,等待客户端的连接和请求
httpd.serve_forever()

以上代码创建了一个简单的WSGI应用程序,该应用程序仅返回"Hello, World!"以及请求的URI。

在示例中,我们自定义了一个函数hello_world_app来处理Web请求。它接受两个参数:environstart_responseenviron是一个包含HTTP请求信息的字典,而start_response是一个回调函数,用于发送HTTP响应头。

hello_world_app函数中,我们获取了请求的URI,并设置了响应头。然后,我们构造了一个简单的响应体,并将其返回。

在主程序中,我们使用make_server函数创建了一个简单的HTTP服务器。我们指定了IP地址(为空字符串表示监听本地所有IP地址)、端口号和我们的应用程序hello_world_app

最后,我们调用serve_forever方法来启动服务器,并一直运行以等待客户端的连接和请求。

要运行以上代码,您只需将其保存为server.py,然后在终端运行python3 server.py即可。服务器将在8000端口上运行,并打印"Serving HTTP on port 8000..."。您可以在浏览器中访问http://localhost:8000来查看结果。