学习WSGI
Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,再返回。
Apache、Nginx、Lighttpd等这些常见的静态服务器就是干这件事情的。
我们需要一个统一的接口,让我们专心用Python编写Web业务。
这个接口就是WSGI:Web Server Gateway Interface。
WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。
无论多么复杂的Web应用程序,入口都是一个WSGI处理函数。
HTTP请求的所有输入信息都可以通过environ(一个包含所有HTTP请求信息的
获得,HTTP响应的输出都可以通过dict
对象)start_response()
加上函数返回值作为Body。
WSGI提供的接口虽然比HTTP接口高级了不少,但和Web App的处理逻辑比,还是比较低级,我们需要在WSGI接口之上能进一步抽象,让我们用一个函数处理一个URL,至于URL到函数的映射,就交给Web框架来做。直接选择一个比较流行的Web框架——Flask来使用。
Flask通过Python的装饰器在内部自动地把URL和函数给关联起来。
除了Flask,常见的Python Web框架还有:
Web框架把我们从WSGI中拯救出来了。现在,我们只需要不断地编写函数,带上URL,就可以Web App的开发了。
一切技术都是为业务服务,脱离业务的技术一文不值!