Django:Python 界最全能的 web 开发框架,battery-include 各种性能齐备,可维护性和开发速度一级棒。常有人说 Django 慢,其实次要慢在 Django ORM 与数据库的交互上,所以是否选用 Django,取决于我的项目对数据库交互的要求以及各种优化。而对于 Django 的同步个性导致吞吐量小的问题,其实能够通过 Celery 等解决,倒不是一个基本问题。Django 的我的项目代表:Instagram,Guardian。
Tornado:天生异步,性能强悍是 Tornado 的名片,然而 Tornado 相比 Django 是较为原始的框架,诸多内容须要本人去解决。当然,随着我的项目越来越大,框架可能提供的性能占比越来越小,更多的内容须要团队本人去实现,而大我的项目往往须要性能的保障,这时候 Tornado 就是比拟好的抉择。Tornado 我的项目代表:知乎。
Flask:微框架的榜样,号称 Python 代码写得最好的我的项目之一。Flask 的灵活性,也是双刃剑:能用好 Flask 的,能够做成 Pinterest,用不好就是劫难(显然对任何框架都是这样)。Flask 尽管是微框架,然而也能够做成规模化的 Flask。加上 Flask 能够自由选择本人的数据库交互组件(通常是 Flask-SQLAlchemy),而且加上 celery +redis 等异步个性当前,Flask 的性能绝对 Tornado 也不逞多让,兴许 Flask 的灵活性可能是某些团队更须要的。
一、Django
次要特点是大而全, 集成了很多组件, 例如: Models Admin Form 等等, 不论你用失去用不到, 反正它全都有, 属于全能型框架
长处:
大和全(重量级框架)
自带 orm,template,view
须要的性能也能够去找第三方的 app
重视高效开发
全自动化的治理后盾(只须要应用起 www.sangpi.comORM,做简略的定义,就能主动生成数据库构造,全功能的治理后盾)
session 性能
毛病:
template 不怎么好用(来自本身的毛病)
数据库用 nosql 不不便(来自本身的毛病)
如果性能不多,容易臃肿
二、Torando
次要特点是原生异步非阻塞, 在 IO 密集型利用和多任务处理上占据绝对性的劣势, 属于专一型框架
长处:
少而精(轻量级框架)
重视性能优越,速度快
解决高并发(申请解决是基于回调的非阻塞调用)
异步非阻塞
websockets 长连贯
内嵌了 HTTP 服务器
单线程的异步网络程序,默认启动时依据 CPU 数量运行多个实例;利用 CPU 多核的劣势
自定义模块
毛病:
模板和游戏数据库局部有很多第三方的模块可供选择,这样不利于封装为一个功能模块
三、Flask
次要特点小而轻, 原生组件简直为 0, 三方提供的组件请参考 Django 十分全面, 属于短小精悍型框架
长处:
简略,Flask 的路由以及路由函数由润饰器设定,开发人员不须要借助其余文件匹配;
配置灵便,有多种办法配置,不同环境的配置也十分不便;环境部署简略,Flask 运行不须要借助其余任何软件,只须要装置了 Python 的 IDE,在命令行运行即可。只须要在 Python 中导入相应包即可满足所有需要;
入门简略,通过官网指南便能够分明的理解 Flask 的运行流程;
低耦合,Flask 能够兼容多种数据库、模板。
毛病:
对于大型网站开发,须要设计路由映射的规定,否则导致代码凌乱