flask网课2 - web框架和flask框架
web框架的介绍和flask框架
刚刚我们用原生socket起了server和浏览器进行了交互,我们发现了一个问题,对于我们来说,只需要回复一个非常简单的hello,world给浏览器,但实际上我们却要多发送很多http协议中要求的内容,这些内容我们其实并不是十分关心,但是却不得不发送给浏览器,以便浏览器能够解析出它需要的信息。
conn.send(b'HTTP/1.1 200 ok\r\nContent-Type: text/html\r\n\r\n\r\nhello,world')
而这些信息如果每一次请求都需要我们自己写,就显得非常不方便,并且到了程序开发阶段,随着需求的增多,有很多工作都是重复的,于是就有人想了一个办法,开发一个工具,我们只需要运用这个工具,就可以不用太关注http协议底层的内容,只关心我们要从浏览器接收或者返回给浏览器的内容就可以了。这就是web框架所做的事情。
https://www.processon.com/view/link/5c3dafcde4b056ae29f06b23
python中的web框架有很多,django,flask,tornado,twisted,sanic都是现在比较流行的web框架。
每个框架所做的基本工作都是帮助我们分析http请求中我们需要的数据,也帮助我们把要返回的内容拼接在http协议中,省去了我们自己处理这些复杂信息的过程。
tornado,twisted,sanic都是现在比较流行的异步框架,能够更好的支持并发需求。这几个框架的区别等后期我们讲异步框架的时候还会比较。
现在我们先来简单的聊一聊django和flask的区别:
django是一个比较全面的web框架,几乎所有web项目开发所需要的功能都在django框架中集成了,例如 我们用django框架就可以直接操作各种常见数据库,还可以直接为前端定制模板,也许你现在听的一头雾水,但你可以理解为django就是一台全自动的咖啡机,有了它,只要我们准备好咖啡豆和牛奶从咖啡豆磨粉到热水冲煮出咖啡到奶糖比例的配合全过程都可以用这台机器完成。
那么如此完美的一台全自动的咖啡机有什么缺点呢?
第一,它一定比较庞大,集合了所有的功能,那么每个功能都要有它对应的工作区域;
第二,如果我是一个只喜欢和黑咖啡的人,那么对于加奶加糖等功能就都不需要了;
而煮黑咖啡往往只需要一个非常小的工具,那么我们为什么要花更多的钱和地方去放置一个带有我们并不需要的功能的机器呢?
这台全自动咖啡机的缺点就是django的缺点,django集成了很多功能,因此一个django模块是庞大的,一个django程序也是复杂的,但是这些功能在我们的某些研发中也许并不常用,因此Django这个框架就显得很臃肿了。
于是更加轻量级的flask框架应运而生了。flask你可以理解为一个专门进行咖啡粉研磨和充煮的机器,它只能完成最基本的煮咖啡功能,至于牛奶和糖的处理,甚至好看的咖啡拉花和其他装饰都是由其他工具分别完成的,这样最终也可以完成各式各样的咖啡。这使得flask框架更加的小巧轻便,而且可以在基础工序之外融合其他组件,最终也可以完成django能完成的功能。
所以我们使用哪个框架还是要看我们的需求:
如果我们需要最小的成本做出一杯复杂的咖啡,那么就需要我们使用全自动的机器,这样不必我们自己去完成其他功能,也可以充分利用django全面的特点。
如果我们要制作的咖啡通常不会经历太复杂的步骤,那么就需要我们使用简单的机器,其他的需要什么功能就拼接什么功能就可以了,这样可以有效的让我们的环境更简洁,并且也可以定制其他功能。
那么框架之间并没有高低之分,只是适合不适合而已。

浙公网安备 33010602011771号