【问题标题】:Optional URL Parameter in Route GAE webapp2Route GAE webapp2 中的可选 URL 参数
【发布时间】:2012-08-08 07:51:53
【问题描述】:

我对 Python 和 GAE 真的很陌生。我正在为一些测试数据设置一个基本的 CRUD 应用程序,并试图为管理页面获取一些路由。我想使用同一个页面来创建和编辑一个对象。所以基本上我想要:

/admin/edit/<id>

其中&lt;id&gt; 是可选的,/admin/edit 将路由到同一页面。我尝试将&lt;id:\w*&gt; 添加到路由中,然后允许我在不提供 id 的情况下点击页面,但是当我提供 id 时,我收到了 404。然后我尝试了&lt;id:\w+&gt; 并得到了一个 404 有和没有 id .我运气不太好。

谁能帮我解决我需要的正则表达式吗?

【问题讨论】:

  • 您在尝试添加 id 时是否在 URL 中添加了斜杠?例如/admin/edit/&lt;id:\w*&gt;/admin/edit/1234/ 不匹配。除此之外,您编写路线的方式可能存在问题。
  • 能否请您发布您的 app.yaml 文件和您的应用程序的路由配置。

标签: python regex google-app-engine url-routing


【解决方案1】:

您可以设置一个正则表达式来解析 URL 中的 ID。这是一个使用 webapp2 的非常具有前瞻性的示例:

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

然后你设置你的请求处理程序来接受附加参数:

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

对于现实世界的实现,您可能希望对正则表达式更加具体一些,并向处理程序添加验证,以防您收到垃圾或没有 ID。

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2013-06-29
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多