2010-05-04 192 views
23

我怎麼才能使用Python當前的URL,獲取當前URL在Python

我要抓住當前的URL,所以我可以檢查它的查詢字符串,例如

requested_url = "URL_HERE" 

url = urlparse(requested_url) 

if url[4]: 
    params = dict([part.split('=') for part in url[4].split('&')]) 

也這是在運行谷歌應用程序引擎

回答

51

試試這個:

self.request.url 

另外,如果你只需要查詢字符串,這將工作:

self.request.query_string 

而且,最後,如果你知道你要找的查詢字符串變量,你可以這樣做:

self.request.get("name-of-querystring-variable") 
+0

self.request.query_string非常感謝 – Alex 2010-05-04 11:31:19

0

試試這個

import os 
url = os.environ['HTTP_HOST'] 
+1

這似乎忽略任何查詢字符串,因爲它是隻抓住主機URL: ParseResult(方案= 'localhost',netloc ='',path ='8080',params ='',query ='',fragment ='') – Alex 2010-05-04 11:13:52

3

對於任何人通過谷歌發現此,

我理解了它,

你可以使用得到您的當前請求的查詢字符串:

url_get = self.request.GET 

這是您的查詢字符串的UnicodeMultiDict!

+0

是的,一般來說你想使用工具由您的框架提供,而不是手動分析URL;這是一個解決的問題。 – geoffspear 2010-05-04 12:50:53

0

我不能讓其他的答案工作,但這裏是我工作:

url = os.environ['HTTP_HOST'] 
    uri = os.environ['REQUEST_URI'] 
    return url + uri