一、对外数据接口

三者作为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. golang文件上传和下载

    [代码]golang 实现的文件服务(包括上传,下载的server端和client端) (2013-09-20 02:03:52) 转载▼ 标签: golang go 文件服务器 it 分类: GO相 ...

  2. 淘宝封装的一款ui 非常不错

    好用的淘宝ui http://m.sui.taobao.org/demos/  手机端访问地址

  3. overridePendingTransition动画只设置一个

    退出动画可以设置为0, 但是两个动画的duration需要一样. 退出动画:<?xml version="1.0" encoding="utf-8"?&g ...

  4. IOS开发证书变成“此证书的签发者无效”解决方法

    IOS开发证书全部变成无效,如下图  打包提示错误  解决方法: 1. 下载https://developer.apple.com/certificationauthority/AppleWWDRCA ...

  5. shell脚本中获取本机ip地址的方法

    ipaddr='172.0.0.1' ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/ ...

  6. task-clph

    @UI方面 1 UILabel如果没有text内容,那么无论你怎么设置背景色都没用 UIButton就都可以用 2使用了新控件:UIStackView 使用步骤: //1创建 _horizontalS ...

  7. 【转】Android应用开发之PNG、IconFont、SVG图标资源优化详解

    1 背景 最近因为一些个人私事导致好久没写博客了,多事之年总算要过去了,突然没了动力,所以赶紧先拿个最近项目中重构的一个小知识点充下数,老题重谈. 在我们App开发中大家可能都会有过如下痛疾(程序员和 ...

  8. js里面获取三位不重复值

    <html><body> <script type="text/javascript"> var d = new Date();var sz = ...

  9. dede在线留言

    登录dede后台,在[核心]---[频道维护]---[自定义表单]中根据需要创建需要的表单.   点击[增加新的自定义表单],添加在线留言表单.确定即可. 注意: ①在这里只需要修改[自定义表单名称: ...

  10. 日期操作类--DateFormat类

    简单的DateFormat格式化编码 时间模式字符串用来指定时间格式.在此模式中,所有的ASCII字母被保留为模式字母,定义如下: 字母 描述 示例 G 纪元标记 AD y 四位年份 2001 M 月 ...