外贸公司企业网站,织梦框架做网站简单,南京今天重大新闻事件,免费微分销系统从这里拉开django框架的帷幕。。撕开#xff0c;哈哈 主要涉及的类:django.core.handlers.base.BaseHandler,django.core.handlers.wsgi.WSGIHandler,前者为后者的父类。 django.http.request.HttpRequest 后者的实例实现了WSGI请求的处理#xff0c;因为WSGIHandler 实现了_…从这里拉开django框架的帷幕。。撕开哈哈 主要涉及的类:django.core.handlers.base.BaseHandler,django.core.handlers.wsgi.WSGIHandler,前者为后者的父类。 django.http.request.HttpRequest 后者的实例实现了WSGI请求的处理因为WSGIHandler 实现了__call__方法所以实例成为了可调用对象。 流程接收到一个wsgi请求--》生成一个WSGIHandler实例传入参数environ,start_response.--》建立request对象environ作为参数--》调用base.BaseHandler的get_response方法使用这个request作为参数 这个get_response的主要作用就是各种middleware的调用其次就是解析url到view依据url.py中的patterns。 urlresolve是什么呢就是从urlconf中找出第一个匹配到的view。 然后就开始middleware和view的调用了。 get_response首先将request用_requet_middleware处理一遍。 如果request_middleware返回response了就直接结束并返回response request_middleware循环完了当然该view_middleware了。view_middleware在view还没有被执行的时候进行处理。参数是requestviewvar参数keyword参数。 接着就该真正的执行这个view了如果在views中出错了就进行exceptiion_middleware处理。否则返回一个response。 如果view的返回值是一个Template那么会导致template_response_middleware的调用。参数是request和response 最后被调用的是response_middleware,参数仍然是requestresponse不过这个response是Response对象了。。 注意在上面任何一步返回一个response都会导致views中的response失效。 没什么难的源代码很清晰。。 接下来分析一下这个过程中涉及到的urlresolve过程。 转载于:https://www.cnblogs.com/Yeah-come-on/p/3652528.html