Flask 留意代理
Flask 中提供的一些对象是其它对象的代理。背后的原因是,这些代理在线程间共享, 并且它们在必要的情景中被调度到限定在一个线程中的实际的对象。
大多数时间你不需要关心它,但是在一些例外情况中,知道一个对象实际上是代理是 有益的:
- 代理对象不会伪造它们继承的类型,所以如果你想运行真正的实例检查,你需要 在被代理的实例上这么做(见下面的 _get_current_object )。
- 如果对象引用是重要的(例如发送 信号 )
如果你需要访问潜在的被代理的对象,你可以使用 _get_current_object()
方法:
app = current_app._get_current_object()
my_signal.send(app)