【发布时间】:2014-11-14 10:18:10
【问题描述】:
我有一些匹配的网址:
(r'foo/[1-9]?[0-9]/?', Foo)
我反对让他们成为例如mydomain.tld/foo?n=84 只是因为我认为没有 GET 参数的永久链接是一种很好的规范(?)风格。
我目前正在做:
class Handler(webapp2.RequestHandler):
#...
def currentURL(self):
return self.request.path_qs
class Foo(Handler):
def get(self):
n = re.match(r'.+/([1-9]?[0-9])/?', self.currentURL()).group(1)
#do something with n
但是有没有更干净、不那么老套的方法呢?
【问题讨论】:
-
webapp-improved.appspot.com/guide/routing.html ... 看看第一个代码块...(该块中的最后一个示例)
-
您希望实际的 URL 是什么样的?
http://mydomain.tld/foo/n/84?如果有多个参数,它们可以按任何顺序出现吗?仅显示您正在使用的正则表达式并不能向我们提供您想要的规则,如果它(您自己承认)很老套且模棱两可。 -
@JoranBeasley 哇哦,这是一个比我预期的更简洁的解决方案!如果您发布示例,我会接受答案。
-
@abarnert 它们匹配上面的正则表达式,所以就像
http://mydomain.tld/foo/84。 -
@OllieFord:很多东西都符合上面的正则表达式。无论如何,您真的想匹配以数字结尾的任何内容,并将该数字视为某些特定 API 的
n参数?
标签: python google-app-engine wsgi webapp2