最近我开始使用 threading.local() 作为一些 api 在请求期间存储和访问状态而无需访问请求对象的方式。
假设我有特定的代码:
_thread_local = threading.local()
_thread_local.theme = 'darkblues'
_thread_local.theme 变量持续多长时间?我是否必须在请求结束时手动取消设置,比如自定义中间件?或者它在处理完请求后被 Django 自动删除?
请您参考如下方法:
它会持续到threading.local()持续
,也就是请求的生命周期
。之后就不需要什么特别的了。 Django 没有做太多事情来管理线程本地的状态,所以在请求结束后事情可能会继续存在。这真的是个问题吗?您可能最终会将值设置为下一个请求中需要的值。
