Flask 请求处理流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

sockerserver.py.BaseServer.server_forever._handle_request_noblock()
.process_request.finish_request()
.BaseRequestHandle.__init__().handle()
werkzeug.serving.py.WSGIRequestHandler.BaseHTTPRequestHandler.handle().handle_one_request().parse_requests().run_wsgi()
.execute(app)
werkzeug.debug.DebuggedApplication.__call__().Request(environ).response(environ, start_response)
werkzeug.serving.execute(for data in application_iter:).__call__().run_wsgi()
.wsgi_app().request_contex()
flask.ctx.py.push().app_ctx.push(**match_request会将当前请求的地址request.url 用正则解析成路由配置表中的数据及参数 **).session_interface.open_session(app, request)
flask.full_dispatch_request().preprocess_request()
.dispatch_request().view_functions('业务处理')
.finalize_request(rv).make_response()
.process_response(response).session_interface.save_session()

werkzeug.wsgi_app().return response()
.ctx.auto_pop(error)

.shutdown_request(request)