webapp2.get_app()
我可以使用:和当前请求实例获取当前的应用程序/WSGI 实例:webapp2.get_request()
但是如何从以下位置获取当前的 webapp2 处理程序实例:
class MainHandler(webapp2.RequestHandler):
def get(self):
for :
webapp2.Route(r'/', handler=module.MainHandler, name='main'),
不使用“self”来指代这个对象。可能吗?
请求对象中的路由对象包含处理程序名称,但不包含实例。
更新:尚未找到解决方案。现在我将处理程序(self)存储在全局中,使用webapp2.RequestHandler
. 但必须有另一种方式。
为了找到解决方案,我研究了 Nick Johnsonz“如何编写自己的 Python webapp 框架”: http: //blog.notdot.net/2010/01/Writing-your-own-webapp-framework-for-App-Engine以了解webapp2 是如何工作的。
我做了什么 :
有了webapp2.get_request()
我可以找到request.route
和request.route.handler_adapter
实例。但不是处理程序实例。处理程序实例未保存。
结论:我使用 my 的构造函数webapp2.RequestHandler
将处理程序实例(self)保存在请求注册表(线程安全)中。而且我不必匹配路由名称,因为每个请求都会创建新实例(处理程序和请求)。