阅读(911) (15)

Flask 留意代理

2021-06-29 10:11:05 更新

Flask 中提供的一些对象是其它对象的代理。背后的原因是,这些代理在线程间共享, 并且它们在必要的情景中被调度到限定在一个线程中的实际的对象。

大多数时间你不需要关心它,但是在一些例外情况中,知道一个对象实际上是代理是 有益的:

  • 代理对象不会伪造它们继承的类型,所以如果你想运行真正的实例检查,你需要 在被代理的实例上这么做(见下面的 _get_current_object )。
  • 如果对象引用是重要的(例如发送 信号 )

如果你需要访问潜在的被代理的对象,你可以使用 ​_get_current_object()​ 方法:

app = current_app._get_current_object()
my_signal.send(app)