使用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请求。它接受两个参数:environ和start_response。environ是一个包含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来查看结果。
