在Python的web开发框架中,目前使用量最高的几个是Django
、Flask
和Tornado
, 经常会有人拿这几个对比,相信大家的初步印象应该是 Django
大而全、Flask
小而精、Tornado
性能高。
了解常用框架
Django
主要特点是大而全,集成了很多组件,例如:
Model
、Admin
、Form
等等, 不管你用得到用不到,反正它全都有,属于全能型框架
-
优点
-
缺点
Flask
- 优点
Flask
确实很“轻”,不愧是Micro Framework
,从Django
转向Flask的开发者一定会如此感慨,除非二者均为深入使用过Flask
自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python
库- 入门简单,即便没有多少
web
开发经验,也能很快做出网站 - 非常适用于小型网站
- 非常适用于开发
web
服务的API
- 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验
- 各方面性能均等于或优于
Django
Django
自带的或第三方的好评如潮的功能,Flask
上总会找到与之类似第三方库Flask
灵活开发,Python
高手基本都会喜欢Flask
,但对Django
却可能褒贬不一Flask
与关系型数据库的配合使用不弱于Django
,而其与NoSQL
数据库的配合远远优于Django
Flask
比Django
更加Pythonic
,与Python
的philosophy
更加吻合
- 缺点
Torando
-
优点
-
缺点
2. Tornado VS Django VS Flask
Tornado
、gevent
、asyncio
、aiohttp
:自带异步特性,底层使用的是事件循环
+协程
,Nodejs
和Go
语言都得益于协程轻松实现了高并发。因为Tornado
内置了自己的HTTPServer
, 运行和部署它与其他Python web框架不 太一样
Django
和Flask
: 传统的模型,同步框架,阻塞io模型。api写同步代码,使用celery
/apscheduler
处理异步任务。python 传统的这种 wsgi 模型,主要是为了方便框架开发者只需要专注框架层面,而非 http 处理层面。但这样却增加了服务部署的复杂度,需要同时部署和配置 http server
和 wsgi server
,如果想支持异步还要部署 worker
。
- 性能:
最基本的 json
的序列化:Django
与 Flask
占优
数据库与模板处理性能:Tornado
与 Flask
旗鼓相当,Django
饱受诟病的地方就是 Django ORM
确实很慢,Django
的开发效率与维护非常棒,然而 Django ORM
深度绑定了该框架,如果你需要把 Django ORM
换成其它轮子,那么也意味着 Django 的诸多优秀特性将从此告别
原文地址:https://blog.csdn.net/weixin_44145338/article/details/134822242
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_50182.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!