摘要
要实现一个能够接管参数的 HTTP 服务器,您能够应用 Python 规范库中的 http.server 模块。该模块提供了一个简略的 HTTP 服务器,能够用于开发和测试 Web 应用程序。
上面是一个示例代码,它实现了一个能够接管参数的 HTTP 服务器:
代码
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse, parse_qs
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
# 解析 URL 中的查问字符串
query = parse_qs(urlparse(self.path).query)
# 获取参数值
name = query.get('name', [''])[0]
age = query.get('age', [''])[0]
# 结构响应
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(bytes("<html><head><title>Python HTTP Server</title></head>", "utf-8"))
self.wfile.write(bytes("<body><p>Hello, %s!</p>" % name, "utf-8"))
self.wfile.write(bytes("<p>You are %s years old.</p></body></html>" % age, "utf-8"))
if __name__ == '__main__':
# 启动 HTTP 服务器
server_address = ('', 8000)
httpd = HTTPServer(server_address, MyHandler)
print('Starting server...')
httpd.serve_forever()
应用阐明
在这个例子中,MyHandler
类继承自 BaseHTTPRequestHandler
,用于解决 HTTP 申请。在do_GET()
办法中,首先解析 URL 中的查问字符串,而后获取参数值。接下来,代码结构响应,并将参数值插入到 HTML 页面中。最初,响应发送到客户端。
如果您想增加更多的参数,只须要在 URL 中增加相应的查问参数,并在 do_GET()
办法中解析即可。例如,如果您想增加一个 gender
参数,能够这样拜访 URL:http://localhost:8000/?name=Tanking&age=27&gender=male
。
您能够通过运行上述代码来启动 HTTP 服务器,而后在浏览器中拜访 http://localhost:8000/?name=Tanking&age=27
来测试它。服务器将返回一个蕴含参数值的 HTML 页面。
演示
作者
TANKING