Django-Tornado-Flask

Django

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。
主要特点是大而全,集成了很多组件,属于全能型框架。

  • 大而全,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器,给开发者提高了超高的开发效率。
  • 重量级框架,功能齐全,自带ORM和模板引擎,支持jinja等非官方模板引擎。
  • 自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库。
  • 自带数据库管理app,session功能
  • 成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。python web框架的先驱,第三方库丰富。

缺点:

  • template不好用
  • 数据库用nosql不方便
  • 如果功能不多,容易臃肿

应用场景:

  • 主要是用于速开发,快速开发,节约成本,如果要实现高并发,就要对django进行二次开发。

Tornado

主要特点是原生异步非阻塞,在I/O密集型应用和多任务处理上占绝对性的优势,属于专注型框架。

  • 少而精(轻量级框架)
  • 注重性能优越,速度快,性能优越,它最出名的异步非阻塞的设计方式。
  • 解决高并发(请求处理是基于回调的非阻塞调用)
  • 异步非阻塞
  • websockets长连接
  • 内嵌了HTTP服务器
  • 单线程的异步网络程序,默认启动时根据CPU数量运行多个实例,利用CPU多核的优势
  • 自定义模块

缺点:

  • 模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块。

应用场景:

  • Tornado是一种Web服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接因此Tornado是实时Web服务的一个理想框架。

Flask

主要特点是小而轻,原生组件几乎为零,三方提供的组件非常全面,属于短小精悍型框架。

  • 轻量级的框架,自由,灵活,可扩展性强,核心基于Werkzeug WSGI工具 和jinja2 模板引擎。
  • 适用于做小网站以及web服务的API,开发大型网站无压力,但架构需要自己设计。
  • 与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django。
  • 简单,Flask的路由以及路由函数由修饰器设定,开发人员不需要借助其他文件匹配。
  • 配置灵活,有多种方法配置,不同环境的配置也非常方便。Flask运行不需要借助其他任何软件,只需要安装了Python的IDE,在命令行运行即可。只需要在Python中导入相应包即可满足所有需求。
  • 入门简单,通过官方指南便可以清楚的了解Flask的运行流程。
  • 低耦合,Flask可以兼容多种数据库、模板。

缺点:

  • 对于大型网站开发,需要设计路由映射规则,否则导致代码混乱。

应用场景

  • 轻量级,主要是用来写接口的一个框架,实现前后端分离,提考开发效率,Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。比如可以用Flask-extension加入ORM、文件上传、身份验证等。Flask没有默认使用的数据库,你可以选择MySQL,也可以用NoSQL。
    其WSGI工具箱用Werkzeug(路由模块),模板引擎则使用Jinja2,这两个也是Flask框架的核心。

参考资料
Django、Tornado、Flask优缺点
Python高效开发之Django、Flask、Tornado三大主流 Python web框架的对比以及各自的应用场景
Python3web框架—Django、Tornado、Flask的对比

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值