什么是Google App Engine相当于ASP.NET的Server.Transfer?

时间:2013-05-23 04:29:27

标签: python google-app-engine webapp2

Server.Transfer有点像重定向,除了请求浏览器执行另一个页面提取,它触发一个内部请求,使请求处理程序“转到”另一个请求处理程序。

Google App Engine中是否有与此等效的Python?

编辑:webapp2

3 个答案:

答案 0 :(得分:2)

对于大多数Python框架,请求处理程序只是一个函数:我应该想象你可以导入你想要使用的实际处理函数,并将你在当前处理函数中收到的参数传递给它。

在Django中(例如):你通常有一个至少需要1个参数的函数,request对象。您应该能够简单地导入下一个处理程序,然后返回执行它的结果。类似的东西:

def actual_update_app_queue_settings(request):
  return HttpResponse()

def update_app_queue_settings(request):
   return actual_update_app_queue_settings(request):

对于您提到的框架,可能是这样的:

class ProductHandler(webapp2.RequestHandler):
    def get(self, product_id):
        self.response.write('You requested product %r.' % product_id)

class ProductHandler2(webapp2.RequestHandler):
    def get(self, product_id):
        nph = ProductHandler()
        nph.initialize(request, response)
        nph.get(product_id)

我通过查看http://webapp-improved.appspot.com/guide/handlers.html来捏造它:它看起来很合理。如果你正在使用路由注释我真的不确定你做了什么,但那可能会这样做。

答案 1 :(得分:0)

通常,您只需调用相应的方法即可。 更具体一点......您使用的是哪种AppEngine? Java,Python,Go ...... Php?

答案 2 :(得分:0)

如果您使用的是java / servlet,那么“forward”就是

protected void doGet(HttpServletRequest request, HttpServletResponse response){
    request.getRequestDispatcher("/newurl").forward(request, response);
}