2017-09-14 69 views
0

所以,我有我的應用程序定義的內部main.py的路線,是這樣的:如何在應用程序引擎cron作業中訪問應用程序的路線?

app = webapp2.WSGIApplication([ 
    webapp2.Route('/',   handler=HomePage,  name="home") 
]) 

裏面的cron作業,我似乎無法訪問應用程序的途徑,例如這不起作用:

self.uri_for('home') 

我在什麼地方找到的在線修復它的摘要,但它是醜陋的使用:

cls.app.router.add(r) 

r將是一系列路線。

有沒有一種方法可以訪問應用程序引擎cron作業中的應用程序路線?

回答

2

你的例子是不正確的,它似乎是simple routesextended routes之間的交叉。

爲了能夠使用self.uri_for('home')你需要使用命名路由,即延長路線:

app = webapp2.WSGIApplication([ 
    webapp2.Route(r'/', handler=HomePage, name='home'), 
]) 

有了到位self.uri_for('home')應該工作,假設selfwebapp2.RequestHandler實例。

解決方法只是看起來醜陋,但就是差不多就是uri_forunder the hood還有:

def uri_for(self, _name, *args, **kwargs): 
    """Returns a URI for a named :class:`Route`. 

    .. seealso:: :meth:`Router.build`. 
    """ 
    return self.app.router.build(self.request, _name, args, kwargs) 
相關問題