GAE Webapp:导入一堆请求处理程序的成本

时间:2012-06-05 02:39:30

标签: python google-app-engine webapp2

我的python GAE应用程序的中央应用程序文件如下所示:

import webapp2
import homepage
import user_auth
import user_confirm
import admin_user
import admin_config
import config

app = webapp2.WSGIApplication([
                                (user_auth.get_login_url(), user_auth.LoginHandler),
                                (user_auth.get_logout_url(), user_auth.LogoutHandler),
                                ("/user/confirm", user_confirm.UserConfirmHandler),
                                ("/admin/config", admin_config.AdminConfigHandler),
                                ("/admin/user/add", admin_user.AdminAddUserHandler),
                                ("/admin/user", admin_user.AdminUserHandler),
                                ("/", homepage.HomepageHandler),
                            ], debug=True)

正如您所看到的,我必须导入一堆请求处理程序,但是对于每个请求,只使用其中一个请求,其他导入只是无用! 这是对内存和性能的巨大浪费,因为那些不必要的导入也会自己导入其他内容。 Google App Engine是否有一些“缓存”机制或某些使这些不必要的导入可忽略不计的东西?我想不是。

我该如何避免它们?我还没有找到每个请求导入1个请求处理程序的方法。如果我将所有路由放到app.yaml,那将按照我想要的方式工作,但它会使事情变得复杂,因为我必须为每个请求处理程序文件编写app = webapp2.WSGIApplication(...并重复那些无聊的URL两次(都在python文件中)并在app.yaml)。

1 个答案:

答案 0 :(得分:3)

找到了这里的方式,已经内置到webapp2中 http://webapp-improved.appspot.com/guide/routing.html#lazy-handlers