2011-12-09 152 views
1

我使用的應用程序引擎Python和webapp2的 我有困難的時候在我的web應用程序webapp2的路由失敗

我需要的結果是定義的URI建設我的新網站:

http://www.example.com/ 
http://www.example.com/products/ 
http://www.example.com/products/table 

我認爲這是一件容易的事,但顯然它不是(對我來說,反正)

我得到當我試圖加載類似的東西404錯誤: http://www.example.com/products/chair/

我的錯誤在哪裏?

app = webapp2.WSGIApplication([ 
webapp2.Route('/', MainPage), 
webapp2.Route('/products/', handler=MainProductsHandler), 
webapp2.Route('/products/(\w+)/', handler=ProductHandler) 
],debug=True) 
+1

你確定你的網址已經到達你的webapp文件嗎?你的'app.yaml'看起來像什麼? –

+0

應用:myappengineapp 版本:1 運行:python27 API_VERSION:1 線程:真 內建的: - remote_api的:在 處理程序: - 網址:/ JS static_dir:JS - 網址:/圖片 static_dir:圖片 - 網址:/.* script:helloworld.app – socksocket

回答

1

好的,我解決了它。 就像這樣:

app = webapp2.WSGIApplication([('/', MainPage), ('/product/.*', MainPage)], debug=True) 

我認爲,我有一個問題,當我用webapp2.Route方法

感謝反正

1

你的第一個方法是有效的使用尖括號包裹正規表示喜歡這樣的:

app = webapp2.WSGIApplication([ 
webapp2.Route('/', MainPage), 
webapp2.Route('/products/', handler=MainProductsHandler), 
webapp2.Route('/products/<id:(\w+)>/', handler=ProductHandler) 
],debug=True) 

不要忘記添加帕拉姆ID(或任何名稱的選擇正則表達式匹配)到處理器的得到滿足否則它會抱怨一個意想不到的參數。