在Python中获取HTTP GET变量

2024-06-13 17:08:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python脚本中设置HTTP服务器。到目前为止,我已经让服务器自己工作了,代码类似于下面的here

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer

class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        print("Just received a GET request")
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()

        self.wfile.write('Hello world')

        return

    def log_request(self, code=None, size=None):
        print('Request')

    def log_message(self, format, *args):
        print('Message')

if __name__ == "__main__":
    try:
        server = HTTPServer(('localhost', 80), MyHandler)
        print('Started http server')
        server.serve_forever()
    except keyboardInterrupt:
        print('^C received, shutting down server')
        server.socket.close()

但是,我需要从get请求中获取变量,因此如果请求了server.py?var1=hi,我需要Python代码将var1放入Python变量并对其进行处理(就像打印一样)。我该怎么办?对于Python专业人员来说,这可能是一个简单的问题,但是这个Python初学者不知道该怎么做!提前谢谢!


Tags: 代码self服务器nonesendloggetserver
2条回答

导入urlparse并执行以下操作:

def do_GET(self):
    qs = {}
    path = self.path
    if '?' in path:
        path, tmp = path.split('?', 1)
        qs = urlparse.parse_qs(tmp)
    print path, qs

^{}

print urlparse.parse_qs(os.environ['QUERY_STRING'])

或者,如果您关心订单或副本,^{}

Import in Python 3:from urllib.parse import urlparse

相关问题 更多 >