为什么需要web框架?

来源:互联网 发布:微软雅黑字体下载mac 编辑:程序博客网 时间:2024/06/05 16:09

上一篇的续篇http://blog.csdn.net/yz764127031/article/details/77435758
感觉上一篇太敷衍,加点东西
使用web框架的主要目的在于:
(1)抽象出代码中共同的部分,实现代码重用,降低编程的难度。
(2)解耦合,将web编程模块化,使得能像积木一样灵活组合。

计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。
第一层解耦,通过网关协议实现web服务器和web应用程序之间的可插拔性。
即可以web服务器和web应用框架可以实现自由组合。
于是就提出了网关接口,主要接口协议有CGI,FastCGI,WSGI,Java的serlet等。

第二层解耦,通过视图函数和控制器,实现http请求和http应答之间的解耦。
一个典型的http请求头为:

GET / HTTP/1.1 (请求行)Host: 127.0.0.1:8000 (请求头)

一个典型的http应答为:

HTTP/1.0 200 OK (响应行)Content-Length: 5252Content-type: text/html; charset=utf-8Date: Tue, 21 Feb 2017 08:36:01 GMT<h1>hello world /</h1>

web框架通过建立url与视图函数之间的映射关系,输入http请求头,调用相应的视图函数,输出对应的http响应。
通过实现视图函数和控制器,我们可以自由的绑定url和视图函数,从而灵活的进行修改。
此外,除了建立url与视图函数的映射关系外,web框架还需要实现其他http协议的重要特性:
1.重定向 响应码3XX,通过修改http头的location
2.异常处理 响应码4XX,5XX
3.区分不同类型的资源,文本html和视频音频图片之类的二进制文件
4.session,实现状态维持
5.下载上传

第三层解耦,数据和模板之间解耦,实现灵活生成动态网页。
尽管现在大趋势为前后端分离,通过json传递数据,但是模板还是一个web框架常见的组成部分。
通过向模板中填充数据来生成动态页面,就可以通过不同组合生成不同的页面,使得代码重用性和灵活性大大提高。

第四层解耦,通过ORM操作数据库,实现数据层的灵活操作。
通过使用orm避免了直接写sql语句的麻烦和可能产生的错误,使用对象模型来表示表,可以更加清晰的表示逻辑。
orm的原理,通过就是将一个数据库客户端进行封装,然后通过调用方法,生成sql语句,对数据库进行操作。

通过这一系列的解耦,我们就可以通过自己的灵活组合来构建web应用,编程难度也大大降低,使得生产力得到了提高。

原创粉丝点击