簡體   English   中英

無法捕獲“?” 在龍卷風python中獲取請求

[英]not able to capture '?' in get request in tornado python

下面是我的代碼

import tornado.httpserver 
import tornado.ioloop 
import tornado.web


class handle_request(tornado.web.RequestHandler):   
    def get(self,path):
       self.write(path+"..............///")        

app = tornado.web.Application(handlers=[(r"/(.*)", handle_request)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(9999) 
print("http://127.0.0.1:9999")
tornado.ioloop.IOLoop.instance().start()

當我到達網址http://127.0.0.1/jo時,它正在打印jo..............//這是正確的,但是當我用jo?g替換jo ,它仍在打印相同的jo...............//我不想。 那么如何捕捉“?” 來自網址。 我注意到,如果我通過jo%3Fg那么它正在打印jo?g.........//但該怎么做?

網址結構如下( URL ):

 scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

sda=qwe是一個查詢(或查詢字符串),它不是路徑的一部分? 只是分隔符。 要捕獲query使用request.query

import tornado.httpserver
import tornado.ioloop
import tornado.web


class handle_request(tornado.web.RequestHandler):
    def get(self,path):
        self.write(
            "{}{}..............///".format(
                path, self.request.query)
        )
        # or whole uri part
        self.write(
            "{}.............///".format(self.request.uri)
        )

app = tornado.web.Application(handlers=[(r"/(.*)", handle_request)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(9999)
print("http://127.0.0.1:9999")
tornado.ioloop.IOLoop.instance().start()

要單獨獲取參數(解析的查詢),請使用請求的方法get_argument

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM