Django的文档:
与每个请求调用一次的process_ *方法不同,当Web服务器响应第一个请求时,
__init__
只被调用一次。
Django如何保证中间件对象只被初始化一次? Web服务器可以启动多个python解释器实例来处理请求,对吗?
答案 0 :(得分:3)
这意味着每个解释器实例一次。请注意实施:
class WSGIHandler(base.BaseHandler):
# ...
def __call__(self, environ, start_response):
# ...
if self._request_middleware is None:
self.load_middleware()
您可以阅读django/core/handlers/wsgi.py
和django/core/handlers/base.py
(特别是Basehandler.load_middleware
)了解更多详情。