wsgi的处理从WSGIHandler开始
def get_wsgi_application():
django.setup(set_prefix=False)
return WSGIHandler()
关于setup,启动时只有logging和apps会初始化
WSGIHandler
在其构造器中调用基类构造器(基类没有构造器),同时调用load_middleware
load_middleware
该load_middleware其实为基类中实现
构造并返回_middleware_chain
调用
调用,即按照wsgi规范,设置的 WSGIHandler(),该对象可调用,即WSGIHandler的call方法
设置scrip_prefix
构造Request
调用get_response得到response
处理response的header和cookie
设置头部
对文件特殊处理
返回response
调用get_response
该方法也是在基类中实现
设置urlconf
调用_middleware_chain,得到response(在load_middleware中创建的)
返回response
_get_response
_middleware_chain的最后部分则为_get_response
获取解析器resolver
根据请求的path_info来解析
调用_view_middleware
调用view 如果抛了异常 调用_exception_middleware
如果有render 调用_template_response_middleware 然后调用render
网友评论