如何重新格式化URL以使其更加安静(从... /?id = 123到.../123)?

Cug*_*uga 3 python url google-app-engine restful-url

目前我通过以下网址访问过页面

www.foo.com/details.html?id=123
Run Code Online (Sandbox Code Playgroud)

我想让它们更加宁静,比如下面的内容:

www.foo.com/details/123
Run Code Online (Sandbox Code Playgroud)

我正在使用Google App Engine.目前,URL已映射到html-mappings文件中:

 ('/details.html*', DetailsPage),
Run Code Online (Sandbox Code Playgroud)

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

class DetailsPage(webapp.RequestHandler):
    def get(self):
        announcement_id = self.request.get("id")
Run Code Online (Sandbox Code Playgroud)

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

谢谢

bgp*_*ter 13

像这样重写你的URL映射:

('/details/(\d+)', DetailsPage),
Run Code Online (Sandbox Code Playgroud)

(这要求URL的尾部包含一个或多个数字而不包含其他内容).

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

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

...继续你的代码.