我想知道是否有我在 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
)
关于python - GAE/Python 请求转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8059858/