关于python:Python实现http服务器httpserver模块传参接收参数

摘要

要实现一个能够接管参数的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

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据