处理流程

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容