Werkzeug中的线程和本地代理。用法

时间:2013-02-18 11:09:20

标签: python import flask werkzeug

首先,我想确保我理解功能的分配正确。分配的本地代理功能是通过线程内的模块(包)共享变量(对象)。我是对的吗?

第二,我的用法仍然不清楚,可能是因为我误解了一项任务。我用Flask。如果我有两个(或更多)模块:A,B。我想将模块A中的对象C导入模块B.但我不能以通常的方式from A import C执行,因为它会导致循环导入,然后是ImportError。如何使用Werkzeug本地代理解决此问题?我应该和Werkzeug一起做吗?

模块A:

from werkzeug.local import LocalSomething # LocalProxy or LocalStack

C = 'C'
# Somehow add C to LocalSomething

模块B:

from werkzeug.locla import LocalSomething

C = LocalSomething()['C']

1 个答案:

答案 0 :(得分:6)

模块Z:

from werkzeug.local import Local
myLocals = Local()

模块A:

from Z import myLocals
myLocals.C = "C"

模块B:

from Z import myLocals
C = getattr(myLocals, "C", None)

这是你要找的吗?