Django-cuser,请求处理和线程

时间:2016-03-03 19:05:10

标签: python django multithreading

我正在使用Apache mod_wsgi来提供django。我还使用Django-cuser中间件,使用户信息始终可用。我无法真正理解这个中间件是如何工作的。具体的源代码:

class CuserMiddleware(object):
    @classmethod
    def get_user(cls, default=None):
        """
        Retrieve user info
        """
        return cls.__users.get(threading.current_thread(), default)

    @classmethod
    def set_user(cls, user):
        """
        Store user info
        """
        if isinstance(user, str):
            user = User.objects.get(username=user)
        cls.__users[threading.current_thread()] = user

为什么使用threading.current_thread()作为用户的密钥?正如我所说,Apache并没有为请求创建不同的theads。

0 个答案:

没有答案