0

我正在尝试使用 uri_for 和命名路由来构建 uri。

这是我的准系统代码:

app = webapp2.WSGIApplication([
(r'/screenshot_worker', 'mkt.ScreenshotWorker'),
webapp2.Route(r'/screenshot/<screenshot_key>', 
   handler='mkt.ScreenshotHandler', name='screenshot')
])

和处理程序

class ScreenshotWorker(webapp2.RequestHandler):

    def post(self):
        d = date.today().strftime('%d%m%Y')
        key = ndb.Key('Screenshot', d)
        url = self.uri_for('screenshot', screenshot_key=key) #fails

失败了

KeyError: "Route named 'screenshot' is not defined."
4

2 回答 2

0

您的路线定义似乎存在问题。我不确定这是否是您的代码摘录中的拼写错误,但该行:

(r'/screenshot_worker', 'mkt.ScreenshotWorker'),

缺少领先的 webapp2.Route (您的第二个定义正确使用),这可能会破坏您的整个 url 映射。

于 2013-12-16T19:44:41.360 回答
0

您定义和构建 URI 的处理程序是ScreenshotWorker,而对于名为 screenshot 的路由,提到的处理程序是ScreenshotHandler

于 2013-07-01T20:33:45.020 回答