【发布时间】:2015-07-09 13:49:09
【问题描述】:
我正在尝试构建一个能够查看以前编辑的 wiki。每个 wiki 条目都有自己的相对 url 路径,并且修订号会在 url 后附加一个 '/rev='。
这是我的代码的一部分。
class WikiPage(MainHandler):
def get(self, url, num):
num = int(num) if num else 0
... # Display the wiki-entry with that revision number
PAGE = r'(/(?:[a-zA-Z0-9_-]+/?)*)'
app = webapp2.WSGIApplication([
(r'/wiki' + PAGE + r'(?:/rev=(\d+))?', WikiPage),
... # Other Handlers
], debug = True)
这可能不是最好的方法(例如,我可以使用查询来获取修订号,但我想知道如何以这种方式进行)
当我运行上面的代码时,我收到一个错误,表明 get 函数接受 3 个参数,但只提供了 2 个参数。url 参数正确传递,但修订号未传递。我也尝试将原始字符串中的组命名为 num 但它仍然无法正常工作。
对于如何将 2 个或更多参数传递给处理程序的任何帮助,我将不胜感激。
编辑:根据 Jamie Gómez 的回答,我尝试修改我的程序,但我仍然无法使其工作(我收到 404 错误)。我也尝试过使用未命名的参数,但无济于事。我没有正确实施吗?
class WikiPage(MainHandler):
def get(self, **kw):
url = kw.get('url')
num = kw.get('num')
num = int(num) if num else 0
... # Display the wiki-entry with that revision number
PAGE = r'<url:/(?:[a-zA-Z0-9_-]+/?)*>'
app = webapp2.WSGIApplication([
(r'/wiki' + PAGE + r'(?:/rev=<num:\d+>)?', WikiPage),
... # Other Handlers
], debug = True)
【问题讨论】:
-
尝试从
def get(self, url, num):中删除self
标签: python regex google-app-engine webapp2