2012-06-24 12 views
5

He pasado por el tut conseguir comenzado a python27 y el motor de aplicación: https://developers.google.com/appengine/docs/python/gettingstartedpython27/cómo organizar los archivos con aplicación python27 marco webapp2 motor

Al final del tut, todas las clases están en el mismo archivo (helloworld.py) y usted y configurar el router para señalar una dirección URL a una clase en la parte inferior del archivo:

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

lo que el tut no cubría es ¿cómo orginise mis clases/archivos como mi la aplicación crece Por ejemplo, ¿colocaría MainPage en un archivo separado y luego llamaría a 'importar página principal' en el archivo helloworld.py y agregaría la ruta a la aplicación WSGIA? ¿Hay algo más automatizado que esto? ¿Qué debería llamar el archivo de MainPage y dónde debería almacenarlo?

Respuesta

7

Preferible a la importación de todos sus controladores al inicio de la aplicación es aprovechar webapp2's lazy handler loading que carga módulos/paquetes según sea necesario.
lo que tiene un par de opciones:

Opción 1, los manipuladores en un módulo
Lugar MainPage en otro archivo (módulo) al mismo nivel que su helloworld.py archivo:

 
/my_gae_app 
    app.yaml 
    helloworld.py 
    handlers.py 

Y en su enrutamiento (en helloworld.py) puede hacer:

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

Opción 2, manipuladores en un paquete; tal vez considerar como su aplicación se hace más grande
medida que su aplicación se hace más grande es posible que desee crear un paquete en el que colocar sus manipuladores:

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

Rutas (en helloworld.py):

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