python web 项目分层_从零实现web框架三:web开发中的抽象与分层

为什么要有分层?

软件开发的过程就是一个抽象、分层的过程,从二进制抽象出来汇编、汇编抽象出来各种高级语言,正是这种一层层的抽象,才有了现在这么好用的各种编程语言,使得开发人员在开发过程中不需要关心底层,可以快速的完成开发任务。

web开发中的分层应该怎么分?

众所周知,http协议是基于tcp协议的,一次http通信其实就是一个特殊的tcp通信,而作为一个web开发者,是没有必要关心tcp层是如何传输的,所以为了能够更高效的开发,web开发中的第一个抽象就是对tcp层进行封装,只暴露出来一个符合http协议的接口,这个分层在python中是wsgi,wsgi是一套协议(pep3333),它规定了对tcp层封装的开发者应该暴露出来的接口是什么样子的,web开发人员可以根据接口开发自己的web应用。这就是web开发的第一个分层。

通过第一个分层,web开发人员可以完全不需要关心tcp层,只根据wsgi协议就能开发出自己的web应用。可是你要是真的直接使用pep3333去做web开发,会发现也会异常繁琐,每次开发需要做很多相同的事情,包括url映射、自己构建request对象、自己构建response对象等等。这个时候就需要再抽象一层——web框架,包括flask、django、tornado等等,他们所做的事情就是在wsgi的基础上将一些通用的模块抽象出来,这样,web开发人员通过web框架开发的时候就只需要关心业务。

截止目前,web开发人员可以很方便的获取到客户端传输过来的符合http协议的数据,根据数据构造需要返回的html(mvc or mtv)或者json(前后端分离)。

下一节,我们将按照以上所述的经典分层模式对之前的代码进行重构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值