Server.Transfer有点像重定向,除了请求浏览器执行另一个页面提取,它触发一个内部请求,使请求处理程序“转到”另一个请求处理程序。
Google App Engine中是否有与此等效的Python?
编辑:webapp2
答案 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);
}