httpd = WSGIServer((addr, port), WSGIRequestHandler)
httpd.set_app(wsgi_handler)
httpd.serve_forever()
使用simple_server时,在初始化WSGIServer时需要给出元组形式的地址和端口号,WSGIRequestHandler处理request。然后使用set_app将具体处理request的用户程序入口加载进去,最后使用永久模式启动服务器。
下面看看simple_server相关类的实现方法,WSGIServer主要是对传输控制层HTTP,TCP,Socket等底层实现细节的一些抽象,继承图:
WSGIRequestHandler是对HTTP请求所有操作的抽象,继承图:
ServerHandler是对程序运行环境进行抽象,继承图:
当有客户端试图连接服务器时,将处理好的environ
(包含有CGI 式环境变量的字典
)和回调函数start_response
(参数必须包含状态码和响应头
),作为参数调用用户添加的app,此处为wsgi_handler,要求wsgi_handler返回响应体
。