如何使用python27 app engine webapp2框架组织文件

wai*_*ani 6 python google-app-engine python-2.7 webapp2

我已经完成了python27和app引擎的入门:https://developers.google.com/appengine/docs/python/gettingstartedpython27/

在tut结束时,所有类都在同一个文件(helloworld.py)中,您和您配置路由器以指向文件底部的类的URL路径:

 app = webapp2.WSGIApplication([('/', MainPage),
                           ('/sign', Guestbook)],
                          debug=True)
Run Code Online (Sandbox Code Playgroud)

啧啧没有涉及的是我如何在我的应用程序增长时设置我的类/文件.例如,我将MainPage放在一个单独的文件中,然后在helloworld.py文件中调用'import MainPage'并将路由添加到WSGIApplication中吗?有没有比这更自动化的东西?我该怎么称呼MainPage文件?我应该在哪里存储它?

ber*_*nie 9

优先在app-startup导入所有处理程序是为了利用webapp2的延迟处理程序加载,根据需要加载模块/包.
所以你有几个选择:

选项1,模块中的处理程序
放置MainPage在与文件相同级别的另一个文件(模块)中helloworld.py:

/my_gae_app
    app.yaml
    helloworld.py
    handlers.py

在您的路由(in helloworld.py)中,您将执行以下操作:

app = webapp2.WSGIApplication([('/', 'handlers.MainPage'),
                               ('/sign', 'handlers.Guestbook')],
                              debug=True)
Run Code Online (Sandbox Code Playgroud)

选项2,包装中的处理程序; 或许考虑随着您的应用变得越来越大
随着您的应用变得越来越大,您可能希望创建一个用于放置处理程序的包:

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

路线(in helloworld.py):

app = webapp2.WSGIApplication([('/', 'handlers.main.MainPage'),
                               ('/sign', 'handlers.guestbook.Guestbook')],
                              debug=True)
Run Code Online (Sandbox Code Playgroud)