之所以能够启动服务器,是因为Werkzeug的作用,Werkzeug是一个WSGI工具包,也可以作为一个Web框架的底层库。
Werkzeug - 图1
Werkzeug - 图2

CGI vs FastCGI vs WSGI vs uWSGI vs uwsgi

CGI

Common Gateway Interface通用网关接口。
是一种非常重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据,CGI描述了服务器和请求处理程序之间传输数据的标准,定义了客户端服务器之间如何传数据。

FastCGI

Fast Common Gateway Interface
CGI的增强版本,减少网页服务器与CGI程序之间互动的开销,从而是否完全可以同时处理贡多的网页请求。Nginx和Apache都有实现该协议。

WSGI

Python Web Server Gateway Interface
为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单通用接口,自从WSGI被开发出来以后,去多其他语言中也出现了类似接口。为Python定义的web服务器和web框架之间的接口标准。

uWSGI和uwsgi

uWSGI是一个Web Server,即一个实现了WSGI的服务器,
uwsgi是uWSGI服务器实现的独有的协议。

使用werkzeug实现一个web服务:

  1. from werkzeug.wrappers import Request,Response
  2. class First_web():
  3. def __call__(self,environ,start_response):
  4. request = Request(environ)
  5. #这里的Request指的是获取参数
  6. text = 'Hello %s' %request.args.get('name',"world")
  7. #对获取到的字典进行get,如果name没有值,赋一个值为world
  8. response = Response(text,mimetype = 'text/plain')
  9. #然后返回类型为text/plain
  10. return response(environ,start_response)
  11. if __name__ == '__main__':
  12. from werkzeug.serving import run_simple
  13. app = First_web()
  14. run_simple('0.0.0.0',8080,app)