Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GAE/Python请求转发?_Python_Google App Engine_Request_Forwarding - Fatal编程技术网

GAE/Python请求转发?

GAE/Python请求转发?,python,google-app-engine,request,forwarding,Python,Google App Engine,Request,Forwarding,我想知道是否有一个类似于RequestDispatcher.forward(请求,响应)的pythonic版本,我在JavaServlet编程中使用过它?在Java中,这是一种非常常见的技术,它使您能够(比如)对特定类型的请求进行一些预处理,然后将其移交给另一个url处理程序。这一切都发生在服务器内部,这大大节省了时间 在GAE/Python文档中我能看到的最接近的东西是RequestHandler.redirect(),但这是没有希望的。首先,有一个额外的往返到浏览器。另一方面,无法保证重定向

我想知道是否有一个类似于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是一些其他的东西
),可能会把事情搞砸)

最简单的方法是将相关代码重构成一个函数,从两个处理程序调用,或者将功能放在两个处理程序都扩展的基类中。哪个更合适取决于您的应用程序。

最简单的方法是将相关代码重构为从两个处理程序调用的函数,或者将该函数放入两个处理程序扩展的基类中。哪个更合适取决于你的应用程序