3

目前我有通过以下方式访问的页面:

www.foo.com/details.html?id=123

我想让它们更安静,例如通过以下方式:

www.foo.com/details/123

我正在使用谷歌应用引擎。当前 URL 映射在html-mappings文件中:

 ('/details.html*', DetailsPage),

然后在DetailsPage处理程序上,它通过以下方式获取ID值:

class DetailsPage(webapp.RequestHandler):
    def get(self):
        announcement_id = self.request.get("id")

我该如何重组它,以便它可以映射 URL 并通过其他格式的 URL 提取 ID:www.foo.com/details/123

谢谢

4

1 回答 1

13

像这样重写你的 URL 映射:

('/details/(\d+)', DetailsPage),

(这要求 URL 的尾随部分包含一个或多个数字,仅此而已)。

然后修改您的DetailsPage::get()方法以接受该 id 参数,例如:

class DetailsPage(webapp.RequestHandler):
    def get(self, announcement_id):
        # next line no longer needed
        # announcement_id = self.request.get("id") 

...并继续使用您的代码。

于 2011-01-04T14:39:28.227 回答