文章主要目标:
- 在WSGI app接收到请求后,处理请求期间,Django中间件是如何生效的?
从Django的WSGI APP简析中,我们初步了解了基于WSGI的HTTP服务的大致过程,大体过程清楚了,那具体到Django框架内,请求又是如何处理的呢?本文主要解释Django框架对request的处理以及中间件的注册及生效过程。
1.WSGIHandler源码阅读
class WSGIHandler(base.BaseHandler):
request_class = WSGIRequest
def __init__(*args, **kwargs):
super.__init__(*args, **kwargs)
self.load_middleware()
def __call__(self, environ, start_response):
# ... 省略与本文无关代码
request = self.request_class(environ)
response = self.get_response(request) # 本文的重点
status = "省略"
response = "省略"
start_response(status