3

最近我开始使用 threading.local() 作为一些 api 在请求期间存储和访问状态的方式,而无需访问请求对象。

所以可以说我有一定的代码:

_thread_local = threading.local()
_thread_local.theme = 'darkblues'

_thread_local.theme该变量持续多长时间?我是否必须在请求结束时手动取消设置,比如自定义中间件?或者它在完成处理请求后被 Django 自动删除?

4

1 回答 1

1

它将threading.local()持续多久,即请求的生命周期。之后没有什么特别的要求。Django 并没有做太多的线程本地状态管理,所以请求结束后事情可能会继续存在。这真的是个问题吗?您最终可能会将值设置为下一个请求中需要的任何值。

于 2013-06-30T04:48:57.983 回答