一、对外数据接口

三者作为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. 原!! java直接打印一个对象时,并不是直接调用该类的toString方法 ,而是会先判断是否为null,非null才会调用toString方法

    网上看了好多java直接打印一个对象时,直接调用该类的toString方法 . 但是: Object obj=null; System.out.println(obj);//没有报错 System.o ...

  2. hiho_1067_最近公共祖先2

    题目大意 给出一棵家谱树,树中的节点都有一个名字,保证每个名字都是唯一的,然后进行若干次查询,找出两个名字的最近公共祖先. 题目链接最近公共祖先 分析 数据量大,根据题目提示,采用Tarjan + 并 ...

  3. opencl gauss filter优化(一)

    Platform: LG G3, Adreno 330 ,img size 3264x2448 C code neon GPU 300 60 29 单位:ms 1. 目前按如下行列分解的方式最快29m ...

  4. PCA in Bioinformatics

    光看原理和代码是没用的,得看看具体算法在实际中的用途,多看看文献. Principal component analysis for clustering gene expression data

  5. 将cantk runtime嵌入到现有的APP中

    1,先取cantk-runtime-demos到本地: git clone https://github.com/drawapp8/cantk-runtime-demos 2,创建一个Android ...

  6. bzoj题解汇总(1021~1031)

    bzoj1021:普通dp bzoj1022:裸的Anti-Nim 必胜:①sg=0且所有不超过1 ②sg>1且存在至少一个超过1 bzoj1023:http://www.cnblogs.com ...

  7. 关于json的理解

    一. 获取数组长度 array.length 获取对象长度  Object.keys(objs).length 二. 如何抉择{}和[] 先说两者区别, {}:父类下面直接是子类名称 []:父类下会追 ...

  8. Flask+mongodb 实现简易个人博客

    最近学习完了<flask-web开发>,实现了一个简易的个人博客网站,由flask+mongodb+bootstrap做成, 这个软件是在阅读<Flask-Web开发>后写的一 ...

  9. Spring Data Jpa配置

    Spring Data JPA提供的接口,也是Spring Data JPA的核心概念: 1:Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组 ...

  10. js-分享107个js中的非常实用的小技巧(借鉴保存)

    转载原文:http://***/Show.aspx?id=285 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:doc ...