GAE/Python请求转发?
我想知道是否有一个类似于RequestDispatcher.forward(请求,响应)的pythonic版本,我在JavaServlet编程中使用过它?在Java中,这是一种非常常见的技术,它使您能够(比如)对特定类型的请求进行一些预处理,然后将其移交给另一个url处理程序。这一切都发生在服务器内部,这大大节省了时间 在GAE/Python文档中我能看到的最接近的东西是RequestHandler.redirect(),但这是没有希望的。首先,有一个额外的往返到浏览器。另一方面,无法保证重定向一旦脱离我的控制,就会被执行,这让我有点紧张。(从语义上讲,这也是错误的,因为重定向意味着原始资源可能不可用或已移动,但事实并非如此。)GAE/Python请求转发?,python,google-app-engine,request,forwarding,Python,Google App Engine,Request,Forwarding,我想知道是否有一个类似于RequestDispatcher.forward(请求,响应)的pythonic版本,我在JavaServlet编程中使用过它?在Java中,这是一种非常常见的技术,它使您能够(比如)对特定类型的请求进行一些预处理,然后将其移交给另一个url处理程序。这一切都发生在服务器内部,这大大节省了时间 在GAE/Python文档中我能看到的最接近的东西是RequestHandler.redirect(),但这是没有希望的。首先,有一个额外的往返到浏览器。另一方面,无法保证重定向
在webapp2中,有一些东西听起来非常接近,如中所述;但从粗略的文档中我可以猜到,这只是为了做一种url重写,这根本不是我想要的。我不知道GAE,但在django,你可以做这样的事情:
def view2(request):
do_some_stuff()
def view1(request):
do_some_stuff()
view2(request) # <-- note this line
(尽管这取决于函数,可能会把事情搞砸,例如,
View.action
使用self.something\u应该在这里,但不在这里,因为self\u是一些其他的东西
)我不知道GAE,但在django你可以这样做:
def view2(request):
do_some_stuff()
def view1(request):
do_some_stuff()
view2(request) # <-- note this line
(尽管这取决于函数,如果,例如,
View.action
使用了self.something\u应该在这里,但不是,因为self\u是一些其他的东西
),可能会把事情搞砸)最简单的方法是将相关代码重构成一个函数,从两个处理程序调用,或者将功能放在两个处理程序都扩展的基类中。哪个更合适取决于您的应用程序。最简单的方法是将相关代码重构为从两个处理程序调用的函数,或者将该函数放入两个处理程序扩展的基类中。哪个更合适取决于你的应用程序