一、对外数据接口

三者作为web框架,都是通过url映射对外的接口

flask:以decorator的形式,映射到函数中

django:以字典形式,映射到函数

tornado: 以字典形式,映射到类中

flask的接口散落在整个app文件中,多了的话,稍微不易于管理;django单独集中在url.py文件中,挺好。

对于接口简单(如cms系统),映射到函数,简单明了;对于复杂的接口(富应用的web app),映射到类,更适合面向对象编程。

二、可扩展性

flask:作为微型框架,它可以自由组配外部功能模块,如orm、template机制等

django:作为大而全框架,它几乎不可能组配其他外部功能模块,但是可以增加丰富它的Middlerware/contrib等

tornado:接近flask

三、代码层次结构

作为framwork,三者的架构基本都是一个callable的App类为核心,

django对使用者,呈现的是mvc结构。比较符合现在的主流。当然flask/tornado都容易做到mvc,只是额外增加工作量。

四、开发效率

flask:由于它协助完成功能很少,除非是小型应用,否则它开发效率比较大

django:大而全的框架,完成了session/orm/等。如果考虑安全性在内,对于一般网站,它的开发效率是非常高的。

tornado:介于flask、django之间。由于没有session机制,所以开发效率也不低。但它原生实现了websocket,所以对于开发需要很多长连接的web应用,会比较快。

五、并发能力

flask:内容很少,对于大应用,性能如何,很大程度看后面人员如何扩展

django:由于代码量大,而且又是同步的,所以抗压能力很弱

tornado:异步框架,性能相对好

实际上,生产时候,都是把framework通过nginx/gevent部署,而tornado对于前面二者来说,并发性能也没有优势。

总体而言:

flask适合用于小型应用开发;如果开发团队能力强,也可以用来做大中型应用

django适合应用用于访问量不大的大中型应用

tornado适合用于开发长连接多的web应用。比如股票信息推送、网络聊天等。

参考:http://www.pythonfan.org/thread-5578-1-1.html

python框架(flask/django/tornado)比较的更多相关文章

  1. python框架之django

    python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django temple django models ...

  2. 第六篇:web之python框架之django

    python框架之django   python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django te ...

  3. Python框架之Django学习

    当前标签: Django   Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0     Python框架之Django学习笔记(十三) 尛 ...

  4. Python框架之Django的相册组件

    Python框架之Django的相册组件 恩,没错,又是Django,虽然学习笔记已经结贴,但是学习笔记里都是基础的,Django的东西不管怎么说还是很多的,要学习的东西自然不会仅仅用十几篇博文就能学 ...

  5. python web框架——扩展Django&tornado

    一 Django自定义分页 目的:自定义分页功能,并把它写成模块(注意其中涉及到的python基础知识) models.py文件 # Create your models here. class Us ...

  6. 两个Python web框架:Django & Tornado比较

    就是说它作为 web 框架比 Django 简单,又支援异步 IO,且更不需要前端的 webserver ? 我已经混乱了, Tornado是 Nginx.Django.Node.js 的结合体?又或 ...

  7. Python框架之Django学习笔记(十一)

    话说上次说到数据库的基本访问,而数据库我们主要进行的操作就是CRUD,也即是做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete),俗 ...

  8. Python框架 Flask 项目实战教程

    本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...

  9. Python框架下django 的并发和多线程

    django 的并发能力真的是令人担忧,django本身框架下只有一个线程在处理请求,任何一个请求阻塞,就会影响另一个情感求的响应,尤其是涉及到IO操作时,基于框架下开发的视图的响应并没有对应的开启多 ...

随机推荐

  1. C#实现文件下载

    1,Http 协议中有专门的指令来告知浏览器, 本次响应的是一个需要下载的文件. 格式如下:Content-Disposition: attachment;filename=filename.ext以 ...

  2. apt-get remove, apt-get autoremove和aptitude remove的区别

    这篇文章的图片链接发生了问题,无法正常查看图片,所以我在CSDN转载一下,特此声明. apt-getremove的行为我们很好理解,就是删除某个包的同时,删除依赖于它的包,例如:A依赖于B, B依赖于 ...

  3. SPSS中变量的度量标准

    在SPSS中,每一个变量都有一个度量标准,这些度量标准说明变量的含义和属性,会对后续的分析产生影响. 1.名义:名义表示定类变量,定类变量表示事物的类别,只能计算频数和频率,各类别之间没有大小.顺序. ...

  4. Java并发编程:阻塞队列(转载)

    Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable.Vector),也讨论了并发容器(ConcurrentHashMap.CopyOnWriteArrayList), ...

  5. 初学java之异常类

    //异常类 package st; public class example_1 { public static void main(String args[]) { int n=0,m=0,t=10 ...

  6. SAP资产变动明细

    *&---------------------------------------------------------------------* *& Report ZFIR027 * ...

  7. OTA(空中下载技术)

    选自:http://baike.baidu.com/link?url=bKOx4Gcgefi17Zt09pRA6zI-p7zzKVkoN07khRVTPfUtqyRMzdG5xURfpnp3wSP_A ...

  8. 在Handler.ashx文件中使用session

    使用jquery调用handler文件中的方法,需要使用session,默认生成的文件中,不可以直接使用session.按照以下步骤,即可以通过session与其他的aspx页面的session进行数 ...

  9. Objective-C:Foundation框架-常用类-NSValue

    NSNumber是NSValue的子类,前者只能包装数字,后者可以包装任意值.NSArray.NSDictionary只能存储OC对象,不能存储结构体.因此,如果想要在NSArray.NSDictio ...

  10. iframe-摘自网友

    定义和用法 iframe 元素会创建包含另外一个文档的内联框架(即行内框架). HTML 与 XHTML 之间的差异 在 HTML 4.1 Strict DTD 和 XHTML 1.0 Strict ...