Google app engine 的uri_无法生成路由的名称

Google app engine 的uri_无法生成路由的名称,google-app-engine,webapp2,Google App Engine,Webapp2,我正在尝试使用uri_和命名路由构建uri 这是我的基本代码: 这与 KeyError: "Route named 'screenshot' is not defined." 您定义和构建的URI处理程序是ScreenshotWorker,而对于名为screenshot的路由,提到的处理程序是ScreenshotHandler,看起来您的路由定义有问题。我不确定这是否是您的代码摘录中的打字错误,但行: (r'/screenshot\u worker',mkt.ScreenshotWorker

我正在尝试使用uri_和命名路由构建uri

这是我的基本代码:

这与

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

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

,看起来您的路由定义有问题。我不确定这是否是您的代码摘录中的打字错误,但行:

(r'/screenshot\u worker',mkt.ScreenshotWorker'),


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

我认为这不相关,但我定义了ScreenshotHandler。如果定义了命名路由,则即使未定义处理程序,也不应构建URI失败(如果尝试请求生成的URI,可能会得到404)
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."