2

该应用程序设置为基本的 WSGI 应用程序。我只是想在 requestHandler 运行之前调用一个函数。

我想要一些非常类似于 before_filter 在 Rails 中的工作方式的东西。

谢谢。

4

2 回答 2

1

您可以将“之前”安装为WSGI 中间件——App Engine 使用 WSGI,就像现在 Python 中的几乎每个 Web 框架和服务器一样。这是一个例子——它在处理程序运行之后做事,但在之前做这些事情更容易......无论如何,你的中间件“包装”了作为实际应用程序的 WSGI 应用程序;-),所以你当然可以之前,之后或相反的​​事情;-)。

有关 WSGI 的更多信息,请参见此处

于 2010-07-09T00:07:33.253 回答
1

我会使用装饰器,它与 rails 中的 before_filter 不完全相同,但对你来说可能已经足够了:

def before_filter(fn):
    def inner_function(self):
        # do stuff before
        return fn(self)
    return inner_function

class MainPage(webapp.RequestHandler):

    @before_filter
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, webapp World!')
于 2010-07-08T23:55:31.310 回答