gpt4 book ai didi

google-app-engine - webapp2 重定向解释

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:02 25 4
gpt4 key购买 nike

我有时不确定如何使用 webapp2.redirect .

有没有什么时候我应该使用self.redirect("/blah") 而不是 return self.redirect("/blah")

这是我对时间线的理解/猜测:(有时我很困惑是响应对象做了什么还是 webapp2 做了)

  1. 我访问我的多线程网站 www.mysite.com/name/robert,chrome 发送一个 GET请求(假设这个请求是一个文本文件)
  2. webapp2 获取此“文本文件”并将其转换为 webapp2.Request。webapp2 还创建了一个新的 webapp2.Response。
  3. 以某种方式将请求 url 提供给路由器进行匹配(或者通过 webapp2 或响应)。合适的 RequestHandler 是实例化。 RequestHandler 的 get() 方法被调用适当的论点。
  4. 在这段时间里只有一个请求和一个回复。
  5. get() 方法调用 response.out.write("hello world") 添加“ Hello World ”到响应体?
  6. get() 方法调用 self.redirect('/foo')
  7. 事情发生了
  8. get() 方法调用 self.out.write("bye world")
  9. 发送给客户端的响应包含hello world、what food added、bye world

初始获取函数示例:

def get():
self.write('hello world')
self.redirect('/foo')
self.write('bye world')

什么“事情发生”?我想路由器找到了/foo/的 RequestHandler。 在调用foo的requestHandlers get()方法之前对Request和Response做了哪些修改。请求是否被删除并被新的 GET 请求取代?回复是否被删除并被新回复取代?初始请求处理程序中存在的上下文仍然是什么?代码执行是否返回到初始请求处理程序的 get 方法,如果是,是否恢复了可能已经存在的上下文?

抱歉,如果这有点啰嗦,我已经尝试解释了我想知道的内容:)

也许询问一些使用重定向的用例(做和不做)会更容易。

最佳答案

redirect 方法实际上只是设置响应状态和响应 Location header 的一些有用的绒毛。在将响应发送到重定向后的客户端之前,什么都没有发生。如果重定向后有更多您不想运行的代码,您可能希望返回调用重定向的结果,以避免运行更多代码。

来源很容易阅读.. http://webapp2.readthedocs.io/en/latest/_modules/webapp2.html#redirect

关于google-app-engine - webapp2 重定向解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com