2. web框架

web框架

Table of Contents

web框架

 

一、什么是web框架

下面是自己写一个简单的web框架的案例:《原文:http://www.cnblogs.com/yuanchenqi/articles/6083427.html》

二、MVC与MTV


一、什么是web框架

Web 应用框架,或者简单的说是“Web 框架”,是用于进行web开发的一套软件架构。例如 Flask 或这 Django 之类的。使用web框架,很多的业务逻辑外的功能不需要自己再去完善,而是使用框架已有的功能就可以。

web框架使得在进行web应用开发的时候,减少了工作量。web框架主要用于动态 络开发,动态 络主要是指现在的主要的页面,可以实现数据的交互和业务功能的完善。使用web框架进行web开发的时候,在进行数据缓存、数据库访问、数据安全校验等方面,不需要自己再重新实现,而是将业务逻辑相关的代码写入框架就可以。也就是说,通过对web框架进行主观上的“缝缝补补”,就可以实现自己进行web开发的需求了。

目前Python主流的框架有Django和Flask等。Django是一个比较重量级的框架,重量级的意思是说,Django几乎所有的功能都帮助开发者写好了,有时候如果想做一个简单的 站,并不需要太多功能,这时候使用Django的话,就比较不合适,因为在部署 站的时候会导致很多不必要的功能也部署了进来。而Flask是一个轻量级的框架,一些核心的功能实现了,但是实现的功能并没有Django那么多,这样可以进行自己的发挥,在Flask的基础上,如果想实现更多的功能,可以很方便地加入。

Java目前的主流开发框架是ssm(spring spring-mvc和mybatis)。相比之前的ssh(spring struts hibernate),ssm也是比较轻量级的框架。

web框架是用来进行web应用开发的一个软件架构。主要用于动态 络开发。开发者在基于web框架实现自己的业务逻辑。web框架实现了很多功能,为实现业务逻辑提供了一套通用方法。

 

对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。

那么最简单的 web 应用是什么样的呢们可以写一个应用,让它一直监听 80 端口(著名的 HTTP 端口,几乎所有 HTTP 都发送到这个端口上)。一旦它接收到等待的客户端发送的请求连接,然后它就会回复一些简单的 HTML。

下面是程序的代码:

注意:文件名不要命名为socket.py要不然导入的import socket是导入的你自己的文件socket.py

最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。

如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。

      正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。

这个接口就是WSGI:Web Server Gateway Interface。(web服务器 关接口)

下面是自己写一个简单的web框架的案例:《原文:http://www.cnblogs.com/yuanchenqi/articles/6083427.html》

各个模块抽取,升级:

围绕建立 web 应用的所有问题中,两个问题尤其突出:

  1. 我们如何将请求的 URL 映射到处理它的代码上==>即:路由
  2. 我们怎样动态地构造请求的 HTML 返回给客户端,HTML 中带有计算得到的值或者从数据库中取出来的信息==>即:模板

每个 web 框架都以某种方法来解决这些问题,也有很多不同的解决方案。首先我们还需要简单讨论一下 MVC 。

二、MVC与MTV

MVC,也就是 Model-View-Controller (模型-视图-控制器),是一种将应用的不同功能从逻辑上划分开。models 代表的是类似数据库表的资源(与 Python 中用  来对真实世界目标建模使用的方法大体相同)。controls 包括应用的业务逻辑,对 models 进行操作。为了动态生成代表页面的 HTML,需要 views 给出所有要动态生成页面的 HTML 的信息。

他们之间以一种插件似的,松耦合的方式连接在一起。

  • 模型负责业务对象与数据库的对象(ORM)
  • 视图负责与用户的交互(页面)
  • 控制器(C)接受用户的输入调用模型和视图完成用户的请求。

在 Django 中有点让人困惑的是,controllers 被称做 views,而 views 被称为 templates。除了名字上的有点奇怪,Django 很好地实现了 MVC 的体系架构。

Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

  •  Model(模型):负责业务对象与数据库的对象(ORM)
  • Template(模版):负责如何把页面展示给用户
  • View(视图):负责业务逻辑,并在适当的时候调用Model和Template

 

 

 


参考文章:https://blog.csdn.net/lywzgzl/article/details/77932946

参考文章:https://www.cnblogs.com/SevenwindMa/p/web.html

参考文章:http://www.cnblogs.com/yuanchenqi/articles/6083427.html


上篇:1. HTTP协议

下篇:3. 初识 Django

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月1日
下一篇 2019年3月1日

相关推荐