学习框架与库能够让软件开发程序员在开发软件的时候能够有更高的编程开发效率,下面我们就通过案例分析来简单了解一下,web编程框架概念与用法分析。
1、什么是web框架?
不管是简单的博客网站,还是复杂的AJAX应用,每一个页面都是通过代码生成。我发现许多开发者喜欢学习web框架,像:Flask或Django。但是,他们却不真正理解什么是web框架、web框架的目的是什么、web框架是如何工作的。
2、web框架如何工作的
在我们开始谈论web框架之前,我们需要知道web是如何工作的。我们将弄清楚:当你在浏览器中输入URL,按下回车,之后都发生了什么。
1.web服务器
每个网页传都是以HTML格式传到你的浏览器,HTML是一种用于描述网页内容和结构的语言。响应并发送HTML给浏览器的应用叫做web服务器。容易令人迷惑的是:运行刚才所说的应用(响应并发送HTML给浏览器的应用)的机器也叫做web服务器。
需要注意,截止目前为止所有的服务器都是发送HTML给浏览器(注意:暂不考虑web服务器是发送Json给浏览器)。不论多么复杂的应用,终结果都是发送HTML给浏览器。
web应用是怎么知道发送什么东西给浏览器?它是根据浏览器的请求返回响应的内容。
2.HTTP
浏览器通过HTTP协议向服务器请求网站的数据(HTTP协议在编程界是通用的、应用范围极广)。HTTP协议是‘请求-响应’模式的基础。客户端(浏览器)从服务器请求数据。web应用则是反过来响应客户的请求,发送响应数据给客户端(浏览器)。
需要记住的一点是:通信是有客户端(浏览器)发起的。服务器无法向客户端,启发(先发起)连接或者主动发送数据给客户端。如果你接收到从服务器发来的数据,那么一定是你的浏览器请求的。
3.web应用
GET和POST方法是两个常见的HTTP方法。web应用责任是:接收的HTTP请求,并返回相应的HTTP响应,返回的请求结果通常包含HTML。POST请求是让web应用做一些操作或者增加一条新的纪录到数据库。当然HTTP还有一些其他的方法,但是我们接下来只说GET和POST。
我们可以写一个监听80端口,等待连接(HTTP默认端口号就是80)的应用。它建立连接,等待接收客户端发来的请求,接收到请求后,返回一些简单的HTML作为响应。
4.数据交互
Django有着‘自带电池’的设计哲学,包含了ORM(对象关系映射:数据库中的表对应成代码中的类),使得操作数据就像操作变得简单。Flask是‘微型框架’,它没有自带数据交互的模版,但是你可以使用SQLAlchemy。Flask和Django通过使用ORM使得数据:增,删,改,查;变得十分方便,简