2012-03-05 49 views
1

如何讀取URL空間,射出我的目標目錄模式。 例如python路由問題與URL數據

url= http://example.appspot.com/abc%20asd >>> abc asd 

我目前正在使用python進行編碼,並且我的正則表達式有問題。提前致謝!

class MainMain(webapp.RequestHandler): 
    def get(self,args): 
     self.response.out.write('hello '+args) 
def main(): 
    application = webapp.WSGIApplication([('/', MainMain),('/(\w+)',MainMain)], debug=True) 
    util.run_wsgi_app(application) 

if __name__ == '__main__': 
    main() 

回答

1

很多時候,這些模式是按順序評估的,第一個前綴匹配是所選的一個。

試試你的最一般的正則表達式移動到末尾:

application = webapp.WSGIApplication([ 
    ('/(\w+)',MainMain)], 
    ('/', MainMain), 
    debug=True) 
+0

有趣。我認爲這部分是對此行爲負責:[python/lib/webapp2/webapp2.py](http://code.google.com/codesearch#Qx8E-7HUBTk/trunk/python/lib/webapp2/webapp2.py&q= WSGIApplication%20package:http://googleappengine%5C.googlecode%5C.com&l=1163) – nodakai

+0

嗨,我意識到我忽略了我的問題中最重要的部分!我想問一下,如果我的url是這樣的:'http://example.appspot.com/asd asd',那麼我的regrex應該是什麼樣的,空格在那裏,或者替換爲%20,並且打印的值是「asd ASD」。謝謝! – Junhao

+0

你需要爲空格添加'\ s',所以像'/([\ w \ s] +'。 – Amber

0
>>> url = 'http://example.appspot.com/abc%20asd' 
>>> import urllib 
>>> import urlparse 
>>> urllib.unquote_plus(urlparse.urlparse(url)[2][1:]) 
'abc asd' 
+0

hihi感謝你幫助我解決這個問題。然而,是否有可能使它更具動態性,用戶只需輸入URL,我就可以打印出他輸入的任何內容,包括空格嗎?謝謝! – Junhao

+0

只需用任何變量保存用戶輸入來替換「url」即可。 –