uri_for无法为Route建立名称

时间:2013-07-01 18:48:49

标签: google-app-engine webapp2

我正在尝试使用uri_for和一个名为Route来构建一个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."

2 个答案:

答案 0 :(得分:0)

您定义并构建URI的处理程序为ScreenshotWorker,而对于Route命名屏幕截图,提到的处理程序为ScreenshotHandler

答案 1 :(得分:0)

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

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

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