龙卷风:初始化()和准备()之间的区别

Tornado: difference between initialize() and prepare()

我正在使用 Tornado 作为 Web 服务器,我注意到 from the official guide 两个函数,initializeprepare,它们是在请求处理之前调用(POSTGET 等...)。 但我无法理解两者之间的区别:似乎它们可以用于相同的事情。如果函数有不同的用例,你能解释一下吗?

如有疑问,请使用 prepare()prepare() 是做大多数事情的合适位置,因为它可以做常规处理程序方法可以做的任何事情(包括调用 self.write()self.render(),或引发 tornado.web.HTTPError)。

仅使用 initialize() 来处理从 URLSpec 接收到的参数(几乎总是通过将它们保存到实例变量中)。 initialize 可能不会调用像 self.write 这样的方法,并且它引发的异常可能不会被干净地处理,所以保持简单。