我的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)。
答案 0 :(得分:3)
找到了这里的方式,已经内置到webapp2中 http://webapp-improved.appspot.com/guide/routing.html#lazy-handlers