2012-06-24 9 views
5

ich durch die die ersten Schritte tut für python27 und App Engine gegangen sind: https://developers.google.com/appengine/docs/python/gettingstartedpython27/, wie Dateien mit python27 App Engine webapp2 Rahmen organisieren

Bis Ende der tut, die alle Klassen sind in der gleichen Datei (helloworld.py) und Sie und konfigurieren Sie den Router einen uRL-Pfad am Ende der Datei zu einer Klasse Punkt:

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

Was das tut nicht deckten ist, wie orginise ich meine Klassen/Dateien als meine App wächst. Zum Beispiel, würde ich MainPage in eine separate Datei einfügen und dann 'import MainPage' in der Datei helloworld.py aufrufen und die Route zur WSGIApplication hinzufügen? Gibt es etwas Automatisiertes als das? Was soll ich die MainPage-Datei nennen und wo sollte ich sie speichern?

Antwort

7

Vorzugsweise importieren Sie alle Ihre Handler bei App-Startup webapp2's lazy handler loading, die Module/Pakete nach Bedarf lädt.
So haben Sie ein paar Optionen:

Option 1, Handlers in einem Modul
Platz MainPage in einer anderen Datei (Modul) auf dem gleichen Niveau wie Ihre helloworld.py Datei:

 
/my_gae_app 
    app.yaml 
    helloworld.py 
    handlers.py 

Und in Ihrem Routing (in helloworld.py) Sie tun würden:

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

Option 2, Handler in einem Paket; vielleicht darüber nachdenken, wie Sie Ihre App
größer
bekommt Wie Ihre Anwendung wird größer Sie ein Paket, in dem erstellen können möchten Ihre Handler setzen:

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

Routen (in helloworld.py):

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