Skip to main content
 首页 » 编程设计

python之GAE/Python 请求转发

2025年05月04日8bhlsheji

我想知道是否有我在 Java servlet 编程中习惯使用的 RequestDispatcher.forward(request, response) 的 pythonic 等价物?它在 Java 中是一种足够常见的技术,使您能够对特定类型的请求进行一些预处理,然后交给另一个 url 处理程序。这一切都发生在服务器内部,这可以节省大量时间。

我在 GAE/Python 文档中看到的最接近的东西是 RequestHandler.redirect(),但这是没有希望的。一方面,浏览器有额外的往返行程。另一方面,不能保证重定向一旦脱离我的控制就会真正被遵循,这让我有点紧张。 (从语义上讲,这也是错误的,因为重定向意味着原始资源可能不可用或已移动,但事实并非如此。)

在 webapp2 中有一些听起来非常接近的东西,描述于 http://webapp-improved.appspot.com/api/webapp2.html#webapp2.RedirectHandler ;但从相当粗略的文档中我可以猜到,它只是为了做一种 url 重写,这根本不是我想要的。

请您参考如下方法:

我不知道 GAE,但在 django 中你可以这样做:

def view2(request): 
   do_some_stuff() 
 
def view1(request): 
    do_some_stuff() 
    view2(request) # <-- note this line 

在 GAE 中,也许你可以这样做:

return View.action.__func__(self, ...) 

(尽管这取决于功能,可能会搞砸,例如,如果 View.action 使用 self.something_which_should_be_here_but_isnt_because_self_is_some_other_thing)