2012-06-24 30 views
5

我已經通過了python27和應用程序引擎的入門嘖嘖了:https://developers.google.com/appengine/docs/python/gettingstartedpython27/如何組織文件與python27應用程序引擎webapp2的框架

到了嘖嘖的結束,所有的類都在同一個文件( helloworld.py),你和你配置路由器在該文件的底部指向一個URL路徑的一類:

app = webapp2.WSGIApplication([('/', MainPage), 
          ('/sign', Guestbook)], 
          debug=True) 

什麼嘖嘖沒有覆蓋是我怎麼orginise我的班/文件作爲我的應用程序增長。例如,我會把在的MainPage一個單獨的文件,然後調用「進口的MainPage」在helloworld.py文件和路由添加到WSGIApplication會?有沒有比這更自動化的東西?我應該怎麼調用文件的MainPage,我應該在哪裏存放呢?

回答

7

宜用導入所有的處理程序,在應用程序 - 啓動是利用webapp2's lazy handler loading需要它加載的模塊/包。
所以,你有兩個選擇:在同一級別的其他文件(模塊)

選項1,處理程序模塊中
MainPage爲您helloworld.py文件:

 
/my_gae_app 
    app.yaml 
    helloworld.py 
    handlers.py 

而且在你的路由中(在helloworld.py)你會這樣做:

app = webapp2.WSGIApplication([('/', 'handlers.MainPage'), 
           ('/sign', 'handlers.Guestbook')], 
           debug=True) 

選項2,在封裝處理程序;也許考慮爲您的應用程序變得越來越大
作爲您的應用程序變得越來越大,你可能希望創建其中一個包把你的處理程序:

 
/my_gae_app 
    /handlers 
     __init__.py 
     guestbook.py 
     main.py 
    app.yaml 
    helloworld.py 

路線(以helloworld.py):

app = webapp2.WSGIApplication([('/', 'handlers.main.MainPage'), 
           ('/sign', 'handlers.guestbook.Guestbook')], 
           debug=True) 
相關問題