我正在尝试使用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."
答案 0 :(得分:0)
您定义并构建URI的处理程序为ScreenshotWorker
,而对于Route命名屏幕截图,提到的处理程序为ScreenshotHandler
答案 1 :(得分:0)
您的路线定义似乎存在问题。我不确定这是否是你的代码摘录的错字,但行:
(r'/screenshot_worker', 'mkt.ScreenshotWorker'),
缺少领先的webapp2.Route(您的第二个定义正确使用),这可能会破坏整个网址映射。