Django 运行原理
理清三个类关系
WSGIServer
WSGIRequestHandler (__init__ 中负责调用 application(environ)
WSGIHandler (内部定义__call__)
1 WSGIServer
listen, select, process_request
WSGIServer.RequestHandlerClass=WSGIRequestHandler
WSGIServer.application = WSGIHanlder() ( 是一个包含了 url settings install_app的类对象)
accept 唤醒之后, request=get_request(socket)
WSGIRequestHandler(socket)
self.setup(设置rfile, wfile)
self.handle (self.parse_quest, handler=new Serverhandler, handler(app))
handler(app) ( setup_environ, app(environ))
handler = ServerHandler( self.rfile, self.wfile, self.get_stderr(), self.get_environ() # 读写缓存 以及envirion内容 ) handler.request_handler = self # backpointer for logging handler.run(self.server.get_app()) self.server.get_app() == application run 内部逻辑:
def r