在尝试为 django 定义一个将请求保留在线程上下文中的中间件时,我遇到了一个奇怪的变量域问题。当我尝试从视图文件中的 API 访问方法“get”时,第一个代码部分会产生错误。第二个代码示例效果很好。为什么???
示例 1(不起作用):
class ContextHandler(object):
#_LOCALS = threading.local()
def process_request(self, request):
self._LOCALS = threading.local()
self._LOCALS.x = "alon"
return None
示例 2(作品):
class ContextHandler(object):
_LOCALS = threading.local()
def process_request(self, request):
self._LOCALS.x = "alon"
return None
常用get方法:
@classmethod
def get(cls):
return getattr(cls._LOCALS, 'x', None)
谢谢!