0%

推荐WSGI和Web Framework的推荐文档

《WSGI: The Server-Application Interface for Python 》这篇文章是我喜欢的那种套路,按时间进程交代技术眼花的过程。他讲到1993年,web开始兴起,但是都是静态页面。随后大牛在NCSA HTTPd(apache 前身)实现了CGI。从那之后,网上的内容都是动态网站了,互联网用户也大幅增长。

但CGI有很多问题,随后大牛们又实现了FastCGI(1996)和mod_python(2000)。在2003年,又提出了PEP-3333实现WSGI,是个高层抽象,统一的接口。

WSGI对应用的要求就是要有一个接口能接受environstart_response两个参数。而且能够返回一个iterable的body。

另外一篇是《https://jeffknupp.com/blog/2014/03/03/what-is-a-web-framework/》 中文版在这

比较清晰解释了WebFramework的主要功能,现在web框架这么多,其实核心功能也就是这些了。

首先要处理好HTTP协议的请求与应答。HTTP协议中主要的请求类型包括GET, POST, ,应答也是有固定套路的。这些都可以由框架完成。

然后框架要处理好URL路由(routing)和模板(template)的问题,这样可以比较从容的对不同URL生成不同的页面。同时在配合一个ORM,这样就能写很多web应用了。大体上,都是使用MVC这个总的模式。

web框架是不是要做好这几件事情:

  1. HTTP消息接受和发送
  2. URL的路由,根据url能够调用对应页面函数
  3. 模板引擎,能够高效,简介的动态生成页面
  4. ORM,能够方便的访问数据库
  5. 其他关于cookie, session, 表单验证, 都属于额外的附加功能。

也就说其实理论就那么一点,只是很繁琐,框架的目的就是为了提高开发效率,但是如果要使用好框架,首先非常清楚工作原理,最好能够理解框架实现细节。