在 WSGIApplication 的构造函数中,它接受一个 debug 参数。有没有办法从继承自 webapp.RequestHandler 的处理程序类访问为此设置的值?
def main():
application = webapp.WSGIApplication([('/', fooHandler)
],
debug=True)
util.run_wsgi_app(application)
请您参考如下方法:
一个 WSGIApplication 实例将 debug 参数的值记录为 self.__debug:双下划线是一个 strong 表示没有外部代码该类本身应该查看此属性,因为它被认为是内部应用程序详细信息,并且可以“随时”更改(即使是对 API 的较小修订)。如果您想忽略这个极其强烈的指示,从技术上讲,您可以使用 webapp.WSGIApplication.active_instance._WSGIApplication__debug 来查看它,但这是一个非常糟糕的主意。
一个好得多的想法是在您自己的代码中子类化 WSGIApplication 以使该属性公开可见:
class MyWSGIapp(webapp.WSGIApplication):
def __init__(self, url_mapping, debug=False):
self.debugmode = debug
webapp.WSGIApplication.__init__(self, url_mapping, debug)
现在,当您使用 MyWSGIapp 而不是 webapp.WSGIApplication 开始时,webapp.WSGIApplication.active_instance.debugmode 变成了 < em>干净,可靠从应用程序中的任何其他地方访问感兴趣的属性的方式。
