Django
优点:
大和全 (重量级框架)
自带 ORM,template,view
需要的功能也可以去找第三方的 App
注重高效开发
全自动化的管理后台 (只需要使用起 ORM, 做简单的定义, 就能自动生成数据库结构, 全功能的管理后台)
session 功能
缺点:
template 不怎么好用 (来自自身的缺点)
数据库用 nosql 不方便 (来自自身的缺点)
如果功能不多, 容易臃肿
Tornado
优点:
少而精 (轻量级框架)
注重性能优越, 速度快
解决高并发 (请求处理是基于回调的非阻塞调用)
异步非阻塞
websockets 长连接
内嵌了 HTTP 服务器
单线程的异步网络程序, 默认启动时根据 CPU 数量运行多个实例; 利用 CPU 多核的优势
自定义模块
缺点:
模板和数据库部分有很多第三方的模块可供选择, 这样不利于封装为一个功能模块
总结:
要性能, Tornado 首选;
要开发速度, Django 和 Flask 都行, 区别是 Flask 把许多功能交给第三方库去完成了, 因此 Flask 更为灵活.
综上所述:
Django 适合初学者或者小团队的快速开发, 适合做管理类, 博客类网站, 或者功能十分复杂需求十分多的网站
Tornado 适合高度定制, 适合访问量大, 异步情况多的网站
======================================================================================
Tornado 概述
Tornado 是 Facebook 开源出来的框架, 其哲学跟 Django 近乎两个极端. Tornado 是异步框架 Tornado 基本上只算有 MVC 中 C 这一层
Tornado 走的是少而精的方向, 它也有提供模板功能; 虽然不鼓励, 但作者是可以允许在模板进行少量编码的.
如果跟 ASP.NET 相比, Tornado 有点类似仅实现了 AsyncHttpHandler; 除此之外, 全部需要自己去实现.
好吧, 其实它有模板, 有国际化支持, 甚至还有内置的 OAuth/OpenID 模块, 方便做第三方登录, 它其实也直接实现了 Http 服务器.
但它没有 ORM(仅有一个 MySQL 的超简单封装), 甚至没有 Session 支持, 更不要说 Django 那样自动化的后台.
假设是一个大型网站, 在高性能的要求下, 框架的各个部分往往都需要定制, 可以复用的模块非常少; 一个以 Django 开发的网站, 各部分经过不断的定制, Django 框架剩下的, 很有可能也就是 tornado 一开始所能提供的这部分.
殊途同归.
来源: http://www.bubuko.com/infodetail-3675891.html