使用Python的make_server()创建简单的web服务器
发布时间:2023-12-24 07:23:44
Python中的make_server()函数位于wsgiref模块中,用于创建一个简单的Web服务器。它接受三个参数:服务器主机名、服务器端口号和一个处理请求的请求处理函数。
下面是一个使用make_server()创建简单Web服务器的示例:
from wsgiref.simple_server import make_server
# 定义请求处理函数
def hello_world_app(environ, start_response):
# 定义响应内容
response_body = b"Hello, World!"
# 设置响应头部
status = "200 OK"
response_headers = [("Content-Type", "text/plain"), ("Content-Length", str(len(response_body)))]
# 调用start_response()函数发送响应头部
start_response(status, response_headers)
# 返回响应内容作为一个可迭代对象
return [response_body]
if __name__ == "__main__":
# 创建一个Web服务器,监听本地主机的8000端口
server = make_server("localhost", 8000, hello_world_app)
print("Serving on http://localhost:8000...")
# 处理请求直到用户终止服务器
server.serve_forever()
在上面的例子中,我们定义了一个名为hello_world_app的请求处理函数。这个函数接受两个参数:environ和start_response。environ是一个包含了所有HTTP请求相关信息的字典,而start_response是一个用于发送HTTP响应头部的函数。
hello_world_app函数首先定义了响应内容response_body,然后设置了响应头部response_headers。接下来,调用start_response(status, response_headers)发送响应头部。最后,将响应内容作为一个字节字符串的列表返回。
在if __name__ == "__main__":部分,我们通过make_server("localhost", 8000, hello_world_app)创建了一个Web服务器实例,监听本地主机的8000端口。然后通过server.serve_forever()方法使服务器一直保持运行,直到用户终止服务器。
要运行这个示例,保存为一个Python文件(例如webserver.py),然后在终端中运行python webserver.py。然后在浏览器中输入http://localhost:8000,你将看到"Hello, World!"作为响应。
这只是一个简单的示例,你可以根据需要在hello_world_app函数中添加更复杂的逻辑来处理不同的HTTP请求,并生成相应的响应。
