2012-08-11 59 views
4

我對Python和GAE真的很陌生。我正在爲一些測試數據設置一個基本的CRUD應用程序,並試圖爲管理頁面進行一些路由。我想使用相同的頁面來創建和編輯對象。所以基本上我想:路由GAE中的可選URL參數webapp2

/管理/編輯/ <ID>

其中<ID>是可選的和/管理/編輯將路由到同一頁面。我試着將< id:\ w * >添加到路由中,然後允許我在沒有提供id的情況下打開頁面,但是當我提供id時,我收到了404。然後我嘗試了< id:\ w + >並得到一個404有和沒有一個id。我沒有多少運氣。

任何人都可以幫助我什麼正則表達式我需要這個?

+0

當您嘗試在ID中添加時,是否向URL添加了尾部斜線?例如'/ admin/edit/'不符合'/ admin/edit/1234 /'。除此之外,這可能是你寫路線的一個問題。 – 2012-08-11 04:22:39

+0

您可以發佈您的app.yaml文件和您的應用程序的路線配置。 – 2012-08-11 20:55:52

回答

0

您可以設置一個正則表達式來解析URL中的ID。這裏是一個非常premitive例如使用webapp2的:

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

你設置你的請求處理程序,接受額外的參數:

class PropertyHandler(webapp2.RequestHandler): 
    def get(self, propertyId): 

對於現實世界中的實現,你想多一點具體的正則表達式,並添加驗證處理程序,因爲你得到垃圾或沒有身份證。