我已经完成了python27和app引擎的入门:https://developers.google.com/appengine/docs/python/gettingstartedpython27/
在tut结束时,所有类都在同一个文件中(helloworld.py),您和您配置路由器以指向文件底部的类的URL路径:
app = webapp2.WSGIApplication([('/', MainPage),
('/sign', Guestbook)],
debug=True)
Tut未涵盖的是我如何随着应用程序的增长而对我的类/文件进行设置。例如,我将MainPage放在一个单独的文件中,然后在helloworld.py文件中调用'import MainPage'并将路由添加到WSGIApplication中吗?有没有比这更自动化的东西?我该怎么称呼MainPage文件?我应该在哪里存储它?
答案 0 :(得分:9)
优先在app-startup导入所有处理程序是为了利用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)