2010-10-12 103 views
0

我試圖找出如何改變基於命名空間URL路由在appengine我怎麼能基於名稱空間的網址路由?

說我有myapp.x.com/apage和myapp.y.com/apage,我想下面的代碼,但 它不」牛逼的工作,因爲我相信在main.py被緩存

ns = namespace_manager.google_apps_namespace() 
if ns == 'x.com' 
    app = WSGIApplication([ 
     (r'/apage', 'my.module.XHandler'), 
    ]) 
else: 
    app = WSGIApplication([ 
     (r'/apage', 'my.module.YHandler'), 
    ]) 

是否有任何其他的方式來做到這一點當然除了轉每處理器爲URL路由器?

回答

1

您需要編寫自己的中間件,該中間件根據域來路由到不同的應用程序。例如,請參閱this blog post中的DomainMiddleware。

+0

謝謝,實際上,在看到你做了這件事並意識到這是可能的之後,我將路由代碼移到main()函數的主體中,並且工作正常。我猜appengine不緩存main.py,但緩存請求之間的main()函數。 – molicule 2010-10-13 15:24:44

+0

App引擎會在請求之間加載加載的模塊。如果你的模塊有一個main()函數,它不會重新執行模塊的主體 - 相反,它只是執行main()。不過,我建議您編寫中間件,但它更通用,更省錢。 – 2010-10-13 16:09:51

相關問題