【问题标题】:Django and threading.local() quirks?Django 和 threading.local() 怪癖?
【发布时间】:2013-06-29 22:20:44
【问题描述】:

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

假设我有某些代码:

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

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

【问题讨论】:

    标签: python django thread-safety middleware


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      相关资源
      最近更新 更多