之所以能够启动服务器,是因为Werkzeug的作用,Werkzeug是一个WSGI工具包,也可以作为一个Web框架的底层库。
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服务:
from werkzeug.wrappers import Request,Response
class First_web():
def __call__(self,environ,start_response):
request = Request(environ)
#这里的Request指的是获取参数
text = 'Hello %s' %request.args.get('name',"world")
#对获取到的字典进行get,如果name没有值,赋一个值为world
response = Response(text,mimetype = 'text/plain')
#然后返回类型为text/plain
return response(environ,start_response)
if __name__ == '__main__':
from werkzeug.serving import run_simple
app = First_web()
run_simple('0.0.0.0',8080,app)